必须先验证en_us.utf-8是否已生成,运行locale -a | grep en_us.utf-8;无输出则需按发行版生成:debian/ubuntu用sudo dpkg-reconfigure locales勾选,rhel/centos 8+执行sudo dnf reinstall glibc-langpack-en,arch取消/etc/locale.gen注释后sudo locale-gen。

确认目标 locale 是否已生成
直接写 LANG=en_US.UTF-8 很可能无效——系统里压根没这个 locale。必须先验证:locale -a | grep en_US.UTF-8。有输出才说明已就绪;没输出就得生成:
- Debian/Ubuntu:运行
sudo dpkg-reconfigure locales,空格勾选en_US.UTF-8 - RHEL/CentOS 8+:执行
sudo dnf reinstall glibc-langpack-en - Arch:取消
/etc/locale.gen中en_US.UTF-8 UTF-8的注释,再跑sudo locale-gen
别信“装了 glibc 就自带英文”——RHEL 8+ 默认不带英文语言包,最小化安装的 Debian 甚至可能根本没装 locales 包。
写对配置文件路径和格式
不同发行版读取的主配置文件完全不同,写错等于白改:
- Debian/Ubuntu 主要用
/etc/default/locale,格式必须是LANG="en_US.UTF-8"(带双引号) - RHEL/CentOS/Fedora 用
/etc/locale.conf,格式为LANG=en_US.UTF-8(不带引号) - 旧版 RHEL/CentOS(7 及之前)用
/etc/sysconfig/i18n,格式同/etc/locale.conf
写完别急着重启,先确认文件路径拼写正确——/etc/syscnfig/i18n 这种手误很常见。
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
绕过 LC_ALL 和 SSH 环境变量透传
SSH 登录后语言又变回中文,大概率是被客户端传来的环境变量覆盖了:
- 检查
/etc/ssh/sshd_config是否含AcceptEnv LANG LC_*—— 如果有,客户端发来的值会直接生效 -
LC_ALL优先级最高,哪怕其他变量设对了也会被它压制;运行unset LC_ALL或在配置中写LC_ALL=(空值) - 临时补救:在
~/.bashrc末尾加export LANG=en_US.UTF-8,并确保它在source链里靠后执行
终端和字体也得支持 UTF-8
locale 设对了,但字符仍显示为方块?问题常出在终端或字体层:
- Xshell / FinalShell:手动设 Remote character set 为 UTF-8
- Windows 自带 OpenSSH:提前运行
chcp 65001 - 验证字体是否支持英文:
fc-list :lang=en应有输出;没有就装:fonts-dejavu(Debian/Ubuntu)或dejavu-sans-fonts(RHEL/CentOS)
最容易被跳过的其实是验证环节:改完立刻跑 locale 和 locale -a,别等重启完才发现 locale 根本没生成。










