在 CentOS 中替换(修改)系统编码(字符集),通常是为了解决中文乱码、程序兼容性等问题。下面按 CentOS 7 / 8 / Stream 的常见做法说明。
locale
或只看系统字符集:
echo $LANG
常见输出:
en_US.UTF-8zh_CN.UTF-8Clocale -a
如果没看到你需要的编码(如 zh_CN.UTF-8),需要先安装。
yum install -y kde-l10n-Chinese
yum reinstall -y glibc-common
dnf install -y langpacks-zh_CN
安装完成后再次执行:
locale -a | grep zh_CN
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
验证:
locale
✅ 适合临时测试或脚本使用。
/etc/locale.conf(系统级)vi /etc/locale.conf
内容改为:
LANG="zh_CN.UTF-8"
LC_ALL="zh_CN.UTF-8"
或只保留:
LANG="zh_CN.UTF-8"
使配置生效:
source /etc/locale.conf
或直接重启:
reboot
vi ~/.bashrc
添加:
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
生效:
source ~/.bashrc
localectl(推荐)localectl set-locale LANG=zh_CN.UTF-8
查看:
localectl status
✅ 自动写入 /etc/locale.conf
locale
输出中应包含:
LANG=zh_CN.UTF-8
查看文件编码:
file 文件名
转换文件编码:
iconv -f gbk -t utf-8 input.txt -o output.txt
需要安装语言包并重新登录:
dnf install -y langpacks-zh_CN
dnf install -y langpacks-zh_CN
localectl set-locale LANG=zh_CN.UTF-8
reboot
如果你告诉我:
我可以给你 更精确的命令。