Board logo

标题: [求助] 新装的Nginx不能支持中文文件名,老大帮忙!!!!!!!!!!! [打印本页]

作者: 525idc    时间: 2012-1-3 00:55     标题: 新装的Nginx不能支持中文文件名,老大帮忙!!!!!!!!!!!

新装的Nginx不能支持中文url,老大帮忙!!!!!!!!!!!

示:http://www.9icn.org/发饰工具/    路径提示404
http://www.9icn.org/uploads/allimg/201112/26/社会-法制157-lp.jpg  找不到图片


路过的大侠们多多指教,小弟万分感谢!
作者: edkeji    时间: 2012-1-4 15:13

也遇到这种问题了,按着网上他们说得操作的了都不成,管理员给回复一下啊!
作者: admin    时间: 2012-1-4 19:21

在IE下默认是以UTF-8的方式编码URL,向服务器发送请求,当中文出现在URL中的时候,就会被以UTF-8的方式编码,发送向服务器。这个时候服务器的字符集就会影响到WEB对URL的解码。

    很多时候在其实不论是NGINX还是APACHE,问题的本质在于浏览器端请求的字符集和服务器端的字符集是否一致,当出现不一致的时候,服务器就无法找到请求的路径,从而出现404 NOT FOUND的错误。解决方案可以从以下几方面开始

1、服务器的系统字符集

    在centos下可以用echo $LANG查看。可以在vi /etc/profile 中增加

   export zh_CN.utf-8

   export LANG=zh_CN.utf-8

  然后重新启动服务器,即可生效

2、nginx的conf文件中配置的字符集

   在/www/wdlinux/nginx/conf/nginx.conf中的charset设置。

3、被请求的文件路径或者文件名的字符集。

  第1和第2点更改很容易,第3点,更改文件名的字符集,需要使用工具convmv才能完成

  convmv 可以从http://j3e.de/linux/convmv 下载,

  wget http://j3e.de/linux/convmv/convmv-1.14.tar.gz

  tar -zxvf convmv-1.14.tar.gz

  cd convmv-1.14

  make clean;

  make install;

  如:

  ./convmv -f GB2312 -t UTF-8 -r --nosmart --notest userfiles/*.*

  以上表示 userfiles下的所有文件的文件名由GB2312转换为UTF-8



   对于文件内容的字符集转换可以使用iconv
作者: 525idc    时间: 2012-1-5 15:46

老大就是老大  呵呵 很强 已经解决了  多谢了
作者: aijusq    时间: 2012-4-18 11:46

在IE下默认是以UTF-8的方式编码URL,向服务器发送请求,当中文出现在URL中的时候,就会被以UTF-8的方式编码 ...
admin 发表于 2012-1-4 19:21



    按照 提供的方法好像不行呢

-bash: export: `zh_CN.utf-8': not a valid identifier
提示如下错误
作者: kevinchan    时间: 2012-7-12 15:34

老大就是老大  呵呵 很强 已经解决了  多谢了
525idc 发表于 2012-1-5 15:46



    佩服这位兄弟能自己弄好!
作者: marquis    时间: 2012-7-12 16:20

还是把文件名命名为英文的要保险
作者: kevinchan    时间: 2012-7-13 02:14

还是把文件名命名为英文的要保险
marquis 发表于 2012-7-12 16:20



   因为我有一个音乐网站,而网站程序支持本地扫描歌曲,歌曲扫上服务器,添加到音乐列表,播放器无法播放中文乐曲的名称。
作者: kevinchan    时间: 2012-7-13 02:15

回复 3# admin


    请问这种方法对服务安全有影响吗?
作者: kevinchan    时间: 2012-8-3 08:43

为什么没有回复呢?
作者: admin    时间: 2012-8-3 09:27

没有
作者: tyhy    时间: 2012-8-3 11:45

urlencode('发饰工具')




欢迎光临 WDlinux官方论坛 (http://wdlinux.cn/bbs/) Powered by Discuz! 7.2