linux系统(本例为Centos)ftp上传中文名文件乱码或者显示问号解决方法

本文是以centos为例
Debian系统请移步

1
https://xiaohost.com/1855.html

产生这个问题的最根本原因是windows系统中文采用GB2312编码,而linux采用utf-8编码
由于大部分草根站长都是用的国外VPS或者服务器,故而默认的语言为英语

如何查看linux系统语言

1
echo $LANG

一般显示为en_US.UTF-8
这也是系统默认的语言

查看是否有中文语言包

1
locale

若没有zh_CN.UTF-8相关内容,说明没有安装语言包,安装方法如下(centos或者RedHat系列,debian使用apt-get安装,自己搜索下教程)

1
yum groupinstall chinese-support

有了中文语言包还不行,需要设置

1
vi /etc/sysconfig/i18n

按i切换从insert模式,将en_US.UTF-8修改为zh_CN.UTF-8即可,:wq保存退出vim编辑
或者直接写入

1
2
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 的话上面这个安装步骤会提示没有可用的包,报错如下

1
2
3
4
5
6
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安装中文字体命令为

1
yum groupinstall "fonts"

安装完成后查看是否成功安装中文语言包

1
locale -a |grep "zh_CN"

若显示

1
2
3
4
5
6
zh_CN

zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8

则说明安装成功
然后

1
vim /etc/sysconfig/i18n

然后添加

1
2
LANG="zh_CN.UTF-8"
LC_ALL="zh_CN.UTF-8"

也可以使用echo命令追加写入>>文件

1
2
echo "LANG="zh_CN.UTF-8"" >> /etc/sysconfig/i18n
echo "LC_ALL="zh_CN.UTF-8"" >> /etc/sysconfig/i18n

然后

1
source /etc/sysconfig/i18n

然后修改本地文字

1
vi /etc/locale.conf

按i切换从insert模式,将en_US.UTF-8修改为zh_CN.UTF-8即可,:wq保存退出vim编辑
或直接使用echo命令覆盖写入>文件

1
echo "LANG="zh_CN.UTF-8"" > /etc/locale.conf

接着设置客户端xshell和winscp即可

为什么按以上步骤设置了,在winscp/xshell等工具连接上去后还是显示乱码或者问号?
原因:客户端未设置成utf-8编码(即以上工具未设置utf-8编码,进行传输时还是按你电脑的编码方式gb2312),故而需要进行设置
xshell设置如下图:
centos xshell中文乱码

winscp设置如下图:
centos winscp 中文乱码

原文链接:https://xiaohost.com/1241.html,转载请注明出处。
0

评论4

请先
  1. 那么大的不透明水印,碍事。看了还不如不看
    123 2018-11-08 0
    • 哈哈 现在我都不加了 没什么意思
      站长 2018-11-11 0
  2. 您好,我到处找不到chinses-support的这个包,能给分享一下吗
    卖女孩的小火柴 2020-10-16 0