首页 » VPS 知识 » 浏览内容

让VPS的 Nginx 支持中文url


2012-06-17 21:41:05 2,084 0 发表评论 字体: 作者:C.K.

体验版 88 元,个人版 128 元,多用户版 288元个人版160元升级到多用户版。

新买的VPS,安装了 CentOS 5.5,储存了带中文的mp3或jpg文件,发现在调用时 有404 出错,找不到文件,估计是中文编码的问题,搜索下,解决方法就是把 Linux 系统字符集设成utf8,是设成 en_US.utf8还是zh_CN.utf8,经我测试,好象二者皆可,我选择了 en_US.utf8。

用”locale”查看系统的编码(默认就是 POSIX,关于 locale 详解,可以参看这里):

#locale
  • LANG=
  • LC_CTYPE="POSIX"
  • LC_NUMERIC="POSIX"
  • LC_TIME="POSIX"
  • LC_COLLATE="POSIX"
  • LC_MONETARY="POSIX"
  • LC_MESSAGES="POSIX"
  • LC_PAPER="POSIX"
  • LC_NAME="POSIX"
  • LC_ADDRESS="POSIX"
  • LC_TELEPHONE="POSIX"
  • LC_MEASUREMENT="POSIX"
  • LC_IDENTIFICATION="POSIX"
  • LC_ALL=
  • 显然我的系统字符集还不是utf8,将下面这句加入到文件 /etc/profile,”vi /etc/profile”,就加在最下面好了:

    export LANG=en_US.UTF8

    保存退出,重新启动系统,运行 locale,结果如下:

    # locale
  • LANG=en_US.UTF8
  • LC_CTYPE="en_US.UTF8"
  • LC_NUMERIC="en_US.UTF8"
  • LC_TIME="en_US.UTF8"
  • LC_COLLATE="en_US.UTF8"
  • LC_MONETARY="en_US.UTF8"
  • LC_MESSAGES="en_US.UTF8"
  • LC_PAPER="en_US.UTF8"
  • LC_NAME="en_US.UTF8"
  • LC_ADDRESS="en_US.UTF8"
  • LC_TELEPHONE="en_US.UTF8"
  • LC_MEASUREMENT="en_US.UTF8"
  • LC_IDENTIFICATION="en_US.UTF8"
  • LC_ALL=
  • NGINX配置文件里添加一句 “charset utf-8″,设置为类似下面的

    server
  • {  
  •   listen 80;  
  •   server_name www.xxx.net;  
  •   index index.html index.htm index.php;  
  •   root  /home/wwwroot;  
  •   charset utf-8;
  • }
  • 重新启动 LNMP,/root/lnmp restart,看看如何。

      网站统计 Statistics

      • 创建时间: 2005年1月3日 距今4949 天
      • 日志总数: 2461
      • 评论总数: 630
      • 标签总数: 654
      • 链接总数: 273
      • 最后更新: 2017-7-1 18:16:33
      • 您是本站第 13725612 位访客

      广告区 Guǎng Gào