語系編碼設定影響終端機顯示、檔案名稱、資料庫排序、程式語系環境。錯誤編碼會導致中文亂碼、排序異常。本文說明查詢、永久修改、暫時修改三種層級的操作。
echo $LANG
# 輸出範例:en_US.UTF-8 或 zh_TW.UTF-8
亦可用 locale 查看完整環境變數 (LC_CTYPE, LC_MESSAGES, LC_ALL 等)。
vi /etc/sysconfig/i18n
修改內容 (以 UTF-8 為例):
#LANG="ja_JP.UTF-8" # 註解原有設定
LANG="en_US.UTF-8" # 設定為美式英文 UTF-8
# 或 LANG="zh_TW.UTF-8" # 繁體中文 UTF-8
SUPPORTED="en_US.UTF-8:en_US:en:zh_TW.UTF-8:zh_TW:zh"
SYSFONT="latarcyrheb-sun16"
存檔後 重新開機 或 重新登入圖形介面 生效。
export LANG=en_US.UTF-8
# 或
export LANG=zh_TW.UTF-8
僅影響目前終端機 Session 及其衍生子程序。適合臨時測試、腳本執行前設定。
# 查詢
localectl status
# 設定 (永久,立即生效無需重開機)
localectl set-locale LANG=zh_TW.UTF-8
localectl 會同步更新 /etc/locale.conf 與 /etc/vconsole.conf。
# 查看可用語系
locale -a | grep -i zh
# 安裝語系套件 (CentOS/RHEL)
yum groupinstall "Chinese Support" -y
# 或精確安裝
yum install glibc-langpack-zh -y # CentOS 8/RHEL 8+
# 手動產生 (舊版)
localedef -c -i zh_TW -f UTF-8 zh_TW.UTF-8
| 語系代碼 | 語言/地區 | 編碼 | 常見用途 |
|---|---|---|---|
en_US.UTF-8 | 美式英文 | UTF-8 | 國際通用、程式開發預設 |
zh_TW.UTF-8 | 繁體中文 (台灣) | UTF-8 | 台灣地區桌面/伺服器 |
zh_CN.UTF-8 | 簡體中文 (中國大陸) | UTF-8 | 大陸地區桌面/伺服器 |
ja_JP.UTF-8 | 日文 | UTF-8 | 日本地區 |
ko_KR.UTF-8 | 韓文 | UTF-8 | 韓國地區 |
C / POSIX | 最小標準 | ASCII | 腳本執行、C 程式預設、避免編碼干擾 |
$LANG 一致 (均為 UTF-8)。iocharset 不符,掛載 FAT/NTFS 時指定 iocharset=utf8。utf8mb4_unicode_ci)。LC_ALL 會**強制覆蓋**所有 LC_* 變數,除非必要勿設定。