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
}
以上供大家参考!
声明:优质手游攻略创作不易,来源:爱钻网。转载务必注明出处:http://www.aizuanapp.com/article/15509.html
① 扫二维码或添加微信号:sjyou_com 关注"爱钻网"
② 领取游戏礼包、手游攻略、新游推荐、游戏陪玩、原创测评
③ 赶紧扫一扫添加吧,Get手游技巧~