温馨提示×

CentOS env中文乱码如何解

小樊
35
2026-07-09 06:54:33
栏目: 智能运维

CentOS 出现中文乱码,通常是 系统语言环境(locale)终端编码字体 没配置好。下面按常见场景给你一套排查和解决方法。


一、先确认当前编码

locale
echo $LANG

如果看到类似:

LANG=en_US.UTF-8

LANG=C

说明 没有启用中文 UTF-8,就会乱码。


二、安装中文语言包(最常见原因)

CentOS 7

yum install -y kde-l10n-Chinese
yum reinstall -y glibc-common

CentOS 8 / Stream

dnf install -y langpacks-zh_CN

三、设置系统中文环境

方法 1:临时生效(当前终端)

export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8

方法 2:永久生效

编辑:

vi /etc/locale.conf

内容改为:

LANG="zh_CN.UTF-8"

然后执行:

source /etc/locale.conf

或重启系统。


四、确认 locale 是否生效

locale

应看到:

LANG=zh_CN.UTF-8
LC_ALL=zh_CN.UTF-8

五、终端 / SSH 工具乱码(非常常见)

1️⃣ 确认终端编码是 UTF-8

  • Xshell / SecureCRT / MobaXterm
    • 编码设置为:UTF-8
  • Windows Terminal / PowerShell
    • 默认就是 UTF-8(CentOS 8+ 一般没问题)

2️⃣ 如果是本地终端(tty)

localectl set-locale LANG=zh_CN.UTF-8

六、文件内容中文乱码

查看文件编码

file 文件名

转换编码(如 GBK → UTF-8)

iconv -f gbk -t utf-8 原文件 -o 新文件

七、vim 中文乱码

编辑:

vi ~/.vimrc

加入:

set encoding=utf-8
set fileencodings=utf-8,gbk,gb18030

八、常见错误总结

现象 原因
ls / cat 中文乱码 没装中文 locale
SSH 中文乱码 终端编码不是 UTF-8
文件中文乱码 文件本身是 GBK
vim 中文乱码 vim 编码未配置

九、快速一键修复(最常用)

yum install -y langpacks-zh_CN
echo "LANG=zh_CN.UTF-8" > /etc/locale.conf
source /etc/locale.conf

如果你愿意,可以告诉我:

  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ 是 SSH 远程 还是 本地终端
  • ✅ 是 文件名 / 文件内容 / 命令输出 乱码

我可以给你更精确的解决方案。

0