linux系统(本例为Centos)ftp上传中文名文件乱码或者显示问号解决方法
转载自:https://xiaohost.com/1241.html
本文是以centos为例,Debian系统请移步 https://xiaohost.com/1855.html
产生这个问题的最根本原因是windows系统中文采用GB2312编码,而linux采用utf-8编码
如何查看linux系统语言
echo $LANG
一般显示为en_US.UTF-8,这也是系统默认的语言
查看是否有中文语言包
locale
若没有zh_CN.UTF-8相关内容,说明没有安装语言包,安装方法如下(centos或者RedHat系列,debian使用apt-get安装,自己搜索下教程)
yum groupinstall chinese-support
有了中文语言包还不行,需要设置
vi /etc/sysconfig/i18n
按i切换从insert模式,将en_US.UTF-8修改为zh_CN.UTF-8即可,:wq保存退出vim编辑或者直接写入
echo "LANG="zh_CN.UTF-8"" >> /etc/sysconfig/i18n
echo "LC_ALL="zh_CN.UTF-8"" >> /etc/sysconfig/i18n
reboot重启linux即可
注意:centos 7 和centos 6安装方法不一样
如果是centos 7 的话上面这个安装步骤会提示没有可用的包,报错如下
Loaded plugins: fastestmirror
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
Warning: group chinese-support does not exist.
Maybe run: yum groups mark install (see man yum)
Error: No packages in any requested group available to install or update
centos 7安装中文字体命令为
yum groupinstall "fonts"
安装完成后查看是否成功安装中文语言包
locale -a |grep "zh_CN"
若显示
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
则说明安装成功,然后
vim /etc/sysconfig/i18n
添加
LANG="zh_CN.UTF-8"
LC_ALL="zh_CN.UTF-8"
也可以使用echo命令追加写入>>文件
echo "LANG="zh_CN.UTF-8"" >> /etc/sysconfig/i18n
echo "LC_ALL="zh_CN.UTF-8"" >> /etc/sysconfig/i18n
然后
source /etc/sysconfig/i18n
修改本地文字
vi /etc/locale.conf
按i切换从insert模式,将en_US.UTF-8修改为zh_CN.UTF-8即可,:wq保存退出vim编辑或直接使用echo命令覆盖写入>文件
echo "LANG="zh_CN.UTF-8"" > /etc/locale.conf
为什么按以上步骤设置了,在winscp/xshell等工具连接上去后还是显示乱码或者问号?
原因:客户端未设置成utf-8编码(即以上工具未设置utf-8编码,进行传输时还是按你电脑的编码方式gb2312),故而需要进行设置
版权申明
本文系作者 @Mr.Yang 原创发布在果皮皮站点。未经许可,禁止转载。
暂无评论数据