萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

RedHat/CentOS 語系編碼查詢與修改完整指南 (UTF-8、zh_TW、en_US)

語系編碼設定影響終端機顯示、檔案名稱、資料庫排序、程式語系環境。錯誤編碼會導致中文亂碼、排序異常。本文說明查詢、永久修改、暫時修改三種層級的操作。

1. 查詢目前語系編碼

echo $LANG
# 輸出範例:en_US.UTF-8 或 zh_TW.UTF-8

亦可用 locale 查看完整環境變數 (LC_CTYPE, LC_MESSAGES, LC_ALL 等)。

2. 永久修改 (需重開機/重新登入生效)

方法:修改 /etc/sysconfig/i18n

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"

存檔後 重新開機 或 重新登入圖形介面 生效。

3. 暫時修改 (目前 Shell 階段立即生效,登出失效)

export LANG=en_US.UTF-8
# 或
export LANG=zh_TW.UTF-8

僅影響目前終端機 Session 及其衍生子程序。適合臨時測試、腳本執行前設定。

4. 系統層級預設語系 (CentOS 7+/RHEL 7+ systemd 時代)

# 查詢
localectl status

# 設定 (永久,立即生效無需重開機)
localectl set-locale LANG=zh_TW.UTF-8

localectl 會同步更新 /etc/locale.conf 與 /etc/vconsole.conf。

5. 產生語系檔案 (若目標語系未安裝)

# 查看可用語系
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

6. 常見編碼對照

語系代碼語言/地區編碼常見用途
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 程式預設、避免編碼干擾

疑難排解

  • 終端機顯示亂碼:確認終端機模擬器 (PuTTY, SecureCRT, Windows Terminal, GNOME Terminal) 編碼設定與 $LANG 一致 (均為 UTF-8)。
  • 檔案名稱亂碼:檔案系統編碼與掛載選項 iocharset 不符,掛載 FAT/NTFS 時指定 iocharset=utf8。
  • 資料庫排序錯誤:建立資料庫/表時指定正確 Collation (如 utf8mb4_unicode_ci)。
  • LC_ALL 會**強制覆蓋**所有 LC_* 變數,除非必要勿設定。
copyright © 萬盛學電腦網 all rights reserved