在 CentOS 中“替换系统编码”通常指 修改系统默认字符集(locale),例如从 zh_CN.UTF-8 改为 en_US.UTF-8,或从 GBK 改为 UTF-8。下面按 CentOS 7 / 8 / Stream 常见场景说明。
locale
重点关注:
LANG=zh_CN.UTF-8
查看系统支持的编码:
locale -a
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
⚠️ 重启或新终端失效
/etc/locale.conf(CentOS 7+ 标准方式)sudo vi /etc/locale.conf
内容示例(改为英文 UTF-8):
LANG="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
或中文 UTF-8:
LANG="zh_CN.UTF-8"
立即生效(不重启):
source /etc/locale.conf
或:
localectl set-locale LANG=en_US.UTF-8
验证:
locale
localectl(推荐)sudo localectl set-locale LANG=en_US.UTF-8
查看:
localectl status
vi /etc/sysconfig/i18n
内容:
LANG="en_US.UTF-8"
生效:
source /etc/sysconfig/i18n
如果 服务器编码已改,但终端仍乱码:
sudo vi /etc/ssh/sshd_config
确保:
AcceptEnv LANG LC_*
客户端不要发送 LANG
⚠️ 风险操作
iconv -f gbk -t utf-8 old.txt -o new.txt
✅ 服务器统一使用:
en_US.UTF-8
✅ 避免:
locale
locale -a
localectl status
cat /etc/locale.conf
如果你愿意,可以告诉我:
我可以给你 精确的一步步方案。