阿里云 ECS Centos7 echo 中文可以正常显示, 编辑文件中文就是乱码, 怎么解决

发布于 2022-09-11 17:14:47 字数 1417 浏览 33 评论 0

问题描述

发现自己ECS环境, linux中文无法正常显示, 也安装了中文语言包!

问题出现的平台版本及自己尝试过哪些方法

系统版本号
➜  ~ cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)
系统语言包
➜  ~ locale -a
locale: Cannot set LC_CTYPE to default locale: No such file or directory
...
en_US
en_US.iso88591
en_US.iso885915
en_US.utf8
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
zh_HK
zh_HK.big5hkscs
zh_HK.utf8
zh_SG
zh_SG.gb2312
zh_SG.gbk
zh_SG.utf8
zh_TW
zh_TW.big5
zh_TW.euctw
zh_TW.utf8
zu_ZA
zu_ZA.iso88591
zu_ZA.utf8

可以看到系统是已经安装过语言包的, 并且在 /etc/locale.conf 文件中添加了相应配置, 如下:

➜  ~ cat /etc/locale.conf
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"

相关代码

使用Mac通过ssh工具连接到远程ECS服务器, 在命令行中输入中文可能正常显示
➜  ~ echo "旅途中的牧马人"
旅途中的牧马人

shell正常

但是如果将中文输出到文件后或在文件中直接编辑输入中文就会显示乱码
➜  ~ echo "旅途中的牧马人" > test.txt
➜  ~ vim test.txt

中文乱码

你期待的结果是什么?实际看到的错误信息又是什么?

老铁们有没有遇到过这样问题的, 怎么处理?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

时间海 2022-09-18 17:14:47

我看不到你vimrc文件的内容,但我猜有可能是这的问题
你试一下

vim /etc/vimrc

添加

set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
〃温暖了心ぐ 2022-09-18 17:14:47

LANGUAGE变量不对

瘫痪情歌 2022-09-18 17:14:47

echo输出的只是你当前shell窗口的编码集并不是linux系统的编码,你需要修改linux的内核系统编码,操作如下:

方式一

修改系统本地环境文件

vi /etc/locale.conf

如果显示

LANG="C"

那么将“C”修改为zh_CN.UTF-8

可能会显示其他,只要不是zh_CN.UTF-8的话,就将原字符修改为zh_CN.UTF-8即可

重新加载配置

source /etc/locale.conf

重新登录shell链接对应服务器

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文