CentOS 下 PHPStorm 中文乱码排查与修复
一 常见成因概览
- 文件本身不是 UTF-8(如 GBK/GB2312),而 IDE 按 UTF-8 打开。
- PHPStorm 的全局或项目编码配置不一致。
- 终端/SSH 客户端未使用 UTF-8,导致运行日志、输出窗口中文乱码。
- 系统缺少中文字体或语言环境,界面/日志中的中文显示为方块或问号。
二 在 PHPStorm 内统一编码
- 打开设置:File > Settings > Editor > File Encodings,将以下项统一为 UTF-8(或与你项目一致的编码):
- IDE Encoding
- Project Encoding
- Default encoding for properties files
- 勾选 Transparent native-to-ascii conversion(对 .properties 更友好)
- 针对单个文件或目录:
- 在编辑器右下角或右键文件选择 File Encoding,执行 Reload(重新载入,不改动磁盘内容)或 Convert(转换编码并保存)。
- 在设置中对特定 File/Directory 覆盖默认编码,便于混合编码项目逐步迁移到 UTF-8。
三 修正终端与运行输出乱码(CentOS 与 SSH 客户端)
- 检查系统语言环境:
- 查看:
locale 或 echo $LANG
- 推荐设置为:zh_CN.UTF-8 或 en_US.UTF-8
- 持久化示例(按系统选择其一):
- CentOS 7/8:
echo "LANG=zh_CN.UTF-8" | sudo tee /etc/locale.conf
- CentOS 6:
echo "export LANG=zh_CN.UTF-8" >> ~/.bash_profile
- 确保终端/SSH 客户端使用 UTF-8:
- 如使用 Xshell/MobaXterm/PuTTY,将会话编码设为 UTF-8 并重启会话。
- 重启 PHPStorm 后再次运行程序,查看 Run/Console 输出是否正常。
四 安装中文字体避免界面与日志方块字
- 安装常用中文字体(示例):
sudo yum groupinstall "Chinese Support" -y
- 或安装具体字体包:
sudo yum install cjkuni-fonts-common cjkuni-ukai-fonts -y
- 刷新字体缓存并重启系统/桌面环境:
- 在 PHPStorm 中设置支持中文的字体(如 Noto Sans CJK SC、Source Han Sans SC、Microsoft YaHei):
- File > Settings > Editor > Font,选择上述字体并应用。
五 快速自检与迁移建议
- 自检清单:
- 文件实际编码与 PHPStorm 显示编码是否一致(状态栏/文件属性)。
- 运行输出与终端编码是否一致(均为 UTF-8)。
- 系统是否具备中文字体并已生效。
- 迁移建议:
- 新项目统一使用 UTF-8;历史 GBK 文件优先在 PHPStorm 中 Convert 为 UTF-8 并提交到版本库,避免团队混合编码。