nginx下无法访问中文文件名的解决方法
今天在网上寻找关于Nginx访问中文目录及文件名的解决方法,偶然看到qwqg的一篇文章!
解决问题的思路很清晰,特转载过来与大家一起分享!该方法还没有亲自测试,所以不太确定是否真有用!
方法一:
搞了大半天nginx下无法访问中文文件名的问题,现在看来是secureCRT的问题?
看来还是字符集的问题了。
看来nginx不需要象apache那样要单独加载支持中文模块。
服务器端字符集如下
[root@test]# locale LANG=en_US.UTF-8 LC_CTYPE=”en_US.UTF-8″ LC_NUMERIC=”en_US.UTF-8″ LC_TIME=”en_US.UTF-8″ LC_COLLATE=”en_US.UTF-8″ LC_MONETARY=”en_US.UTF-8″ LC_MESSAGES=”en_US.UTF-8″ LC_PAPER=”en_US.UTF-8″ LC_NAME=”en_US.UTF-8″ LC_ADDRESS=”en_US.UTF-8″ LC_TELEPHONE=”en_US.UTF-8″ LC_MEASUREMENT=”en_US.UTF-8″ LC_IDENTIFICATION=”en_US.UTF-8″ LC_ALL=
在nginx.conf文件里配置的字符集也是utf-8
server { listen 80; server_name test.cn; root /data; index index.html index.jsp; charset utf-8;
客户端用的是secureCRT,字符集用的是defalut,用rz上传后在服务器上用ls显示乱码,用ie怎么浏览都不能正常看到。
找朋友测试了一下他那边的nginx,中文显示居然一切正常,后来他告诉我他的secrueCRT用的字符集是utf-8,我改用uft-8后再用rz上传文件,在ie下中文可以正常显示了。
方法二:
一:确定你的系统是UTF编码
[root@Tserver ~]# env|grep LANG LANG=en_US.UTF-8
二:NGINX配置文件里设置为
server { listen 80; server_name .inginx.com ; index index.html index.htm index.php; root /usr/local/nginx/html/inginx.com; charset utf-8; }
三:如果使用putty
windows --> translation -->UTF-8
mkdir NGINX中文技术站
echo NGINX中文技术站 > 中国.html
四,如果是用securecrt 上传文件,请选择 回话-->外观--UTF-8
五,如果出现文件名乱码显示
执行
for f in `ls *.html` ; do mv $f `ls $f|iconv -f GBK -t UTF-8`; done
另一位朋友的解决方案是:
我现在用的方法是
在后端个别目录用APACHE代理了 。。
APACHE支持中文码。。
location /~doc/ { proxy_pass http://127.0.0.1:81/;#apache server }
以上供大家参考!
一、推荐使用迅雷或快车等多线程下载软件下载本站资源。
二、未登录会员无法下载,登录后可获得更多便利功能,若未注册,请先注册。
三、如果服务器暂不能下载请稍后重试!总是不能下载,请点我报错 ,谢谢合作!
四、本站大部分资源是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站将不对任何资源负法律责任.如果您发现本站有部分资源侵害了您的权益,请速与我们联系,我们将尽快处理.
五、如有其他问题,请加网站设计交流群(点击这里查看交流群 )进行交流。
六、如需转载本站资源,请注明转载来自并附带链接
七、本站部分资源为加密压缩文件,统一解压密码为:www.aizhanzhe.com