Nginx使⽤中⽂URL,中⽂⽬录路径
分类: 2012-05-03 11:04 2672⼈阅读 (0)
[root@Tserver ~]# env|grep LANG
LANG=en_US.UTF-8
⼆:NGINX配置⽂件⾥默认编码设置为utf-8
server{
nginx和apache区别listen 80;
server_name .inginx ;
index index.html index.htm index.php;
root /usr/local/nginx/html/inginx;
charset utf-8;
}
三:如果使⽤putty
windows –> translation –>UTF-8
mkdir NGINX中⽂技术站
echo ‘NGINX中⽂技术站’ > NGINX中⽂技术站/中国.html
四,如果是⽤securecrt 上传⽂件,请选择 回话–>外观–UTF-8
如果是FTP软件也将默认编码设置为TUF-8
五,如果上传的⽂件名出现乱码显⽰执⾏
for f in `ls *.html` ; do mv $f `ls $f|iconv -f GBK -t UTF-8`; done
Nginx下的中⽂路径及中⽂⽂件名的处理
在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⽂件中配置的字符集
在../nginx/f中的charset设置。
3、被请求的⽂件路径或者⽂件名的字符集。
第1和第2点更改很容易,第3点,更改⽂件名的字符集,需要使⽤⼯具convmv才能完成 tar -zxvf conv
mv-1.
cd convmv-1.14
make clean;
make install;
如:
./convmv -f GB2312 -t UTF-8 -r --nosmart --notest userfiles/*.*
以上表⽰ userfiles下的所有⽂件的⽂件名由GB2312转换为UTF-8
对于⽂件内容的字符集转换可以使⽤iconv
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论