发现部署在Nginx上的几个新页面全都404了,一开始以为是路径错误,然后去服务器上查看,发现中文字符全都乱码了
编码格式出问题了,网上有个解决办法是修改Nginx配置文件与Linux系统区域语言设置,Nginx默认使用的是koi8-r(不同版本默认值可能不同),是俄语的编码格式,毕竟Nginx作者是俄罗斯人,将其修改为utf-8
然后修改系统设置,由于该方法需要重启系统,在服务器正在提供其他服务时不太适用,寻找其他方法。
解决方法一、使用Xftp重新上传文件
Xftp7中,在文件->当前会话属性->选项->编码 中修改编码格式为UTF-8,然后使用Xftp重新上传文件。
解决方法二、在服务器上转码
使用convmv工具在服务器上转码
- 安装convmv,以CentOS7为例
yum -y install convmv
- 使用命令进行转码
convmv语法:
convmv [选项] 文件名
常用选项:
- -f 源编码格式
- -t 目标编码格式
- -r 递归处理
- --list 列出所有可用编码
- -i 交互模式
- --notest 直接转换,不进行测试
- --upper 全部转换为大写
- --lower 全部转换为小写
- --nosmart 如果是utf-8文件,则忽略
最常用的转换命令:
convmv -f原格式 -t目标格式 -r --notest 目录名
如: 将GBK转为UTF-8
convmv -fGBK -tUTF8 -r --notest dir
转码后有返回值