转载自: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),故而需要进行设置

分类: 服务器 标签: centos中文乱码linux

评论

暂无评论数据

暂无评论数据

目录