Nginx中中文名字目录无法访问或者404的解决方法 LNMP 下

经常有很多人在操作VPS时经常遇到中文乱码的状态。

我们先用locale看一下,如果显示的结果是en_US.UTF-8 ,它是正常的,不需要按下面的操作设置。如果显示其他的编码就需要按以下步骤设置:

CentOS:

编辑/etc/sysconfig/i18n 文件,

vi /etc/sysconfig/i18n
#内容修改为:
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"

保存,重启系统生效。

也可以编辑/etc/profile在文件末尾加入

export LANG="en_US.UTF-8" 22#客户端SSH端口

重新连接一下就生效。

Debian:

apt-get install -y locales
dpkg-reconfigure locales

执行 dpkg-reconfigure locales 后会出现如下对话框:

用向下的方向键找到en_US.UTF-8 UTF-8,按空格选择,再按回车键。

再按向下键选择en_US.UTF-8 ,再按回车键确认。

重启系统。

Ubuntu:

编辑/etc/default/locale 文件,修改内容为(没有的话创建一个):

vi /etc/default/locale
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"

保存,再执行:locale-gen en_US en_US.UTF-8 ,重启系统。

执行:locale  看一下是否显示是en_US.UTF-8,如果报错,请在本文反馈。

按以上步骤设置好后即可支持中文,就可以上传中文的文件或中文的目录。

可能会遇到的问题:

如果使用Winscp之类的工具上传都要设置为utf-8才可以,设置步骤如下:

  • WinSCP:

1.打开WinSCP,在登录界面中选择即将要登录的会话

2.点击旁边的"编辑"按钮,然后点击"高级"按钮

3.在左侧树型菜单中找到"环境"项,并打开它

4.在右侧中一项为"文件名UTF-8编码",选择"开启"或"自动",设置完成。

  • XShell:

1.打开XShell,在保存的会话列表即将登录的会话上右击,选择"属性"
2.在点击"终端",在终端里有个编码的下拉列表框,选择"Unicode(UTF-8)",设置完成,简单点的设置方法,直接点上面工具栏里面的蓝绿色的圆球,选择"UTF-8"。

总结

1.编码不一致就会出现乱码。

2.如果是在没有更改编码前上传的文件,设置好后依然会是乱码的,建议重新上传一下文件。如果没有原来文件的备份可以使用下面命令进行转换:for f in `ls *.html` ; do mv $f `ls $f|iconv -f GBK -t UTF-8`; done 。

其中*.html为要转换的文件类型,也可以更换为*.txt,*.rar 主要是看你是什么文件了,里面的GBK为源文件的编码类型,如果不知道源文件的编码类型可以执行:file -bi 文件名  。

如果想在Windows下改的话其实也是可以的Editplus就有批量修改文件编码的功能,其他的软件可能也有此类功能,可以自行研究一下。

如果是目录的话,目前好像是没有办法进行转换。

还有一个问题,如果是html之类的网页文件,如果原来是网页内容是gb2312或类似的非utf-8的编码,先要将网页里面的charset 改为charset=utf-8,再转换文件编码,否则网页还是会乱码的。

版权声明:
作者:yfeer
链接:https://www.yfeer.com/116.html
来源:个人编程学习网
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>