Linux 顯示中文亂碼 (方框、亂碼、問號) 核心原因只有三個:缺少中文字體、缺少中文輸入法、系統 Locale 未設為中文。本文提供 RHEL/CentOS 5/6/7 時代的 RPM 包安裝流程,現代系統請改用套件管理器對應套件名。

fonts-chinese-3.02-12.el5.noarch.rpm
m17n-db-common-cjk-1.3.3-46.el5.noarch.rpm
m17n-db-chinese-1.3.3-46.el5.noarch.rpm
scim-libs-1.4.4-39.el5.i386.rpm
scim-1.4.4-39.el5.i386.rpm
scim-chinese-standard-0.0.2-1.el5.i386.rpm
scim-tables-0.5.6-7.i386.rpm
scim-tables-chinese-0.5.6-7.i386.rpm
scim-pinyin-0.5.91-15.el5.i386.rpm
# 圖形介面:系統 → 管理 → 語言 → 選擇「簡體中文」
# 或命令列:
localectl set-locale LANG=zh_CN.UTF-8
reboot
# 或不重啟:Ctrl+Alt+Backspace 重啟 X Server
| 發行版 | 安裝中文字體 | 安裝輸入法 | 設定 Locale |
|---|---|---|---|
| CentOS/RHEL 7+ | dnf install google-noto-sans-cjk-fonts | dnf install ibus-libpinyin | localectl set-locale LANG=zh_CN.UTF-8 |
| Ubuntu 18.04+ | apt install fonts-noto-cjk | apt install ibus-libpinyin | sudo update-locale LANG=zh_CN.UTF-8 |
| Debian 10+ | apt install fonts-noto-cjk | apt install ibus-libpinyin | sudo update-locale LANG=zh_CN.UTF-8 |
locale 輸出含 LANG=zh_CN.UTF-8 (或 zh_TW.UTF-8)fc-list :lang=zh 列出中文字體ibus-daemon -drx 啟動輸入法,Super+Space 切換echo "測試中文" 正常顯示| 現象 | 對策 |
|---|---|
| 終端正常但圖形應用亂碼 | 應用內部編碼設定錯誤,檢查應用偏好設定 → 編碼 |
| 檔名亂碼 (Samba/NFS 掛載) | 掛載選項加 iocharset=utf8 (SMB) 或 nls=utf8 (NFS)
|
| 資料庫中文亂碼 | 建立資料庫/表指定 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
|
「字體、輸入法、Locale」三位一體配置到位,Linux 中文環境即可完美運行。