現象:`LANG=en_US.UTF-8` 終端顯示中文亂碼,`LANG=en_US` 卻正常。
# 1. 查看支援 locale
locale -a | grep en_US
# 若無 en_US.utf8 → 需產生
# 2. 產生 locale (Debian/Ubuntu)
sudo locale-gen en_US.UTF-8
sudo update-locale LANG=en_US.UTF-8
# 3. 重新登入或 source /etc/default/locale
| LANG 設定 | 系統識別 | 實際輸出語言 | 終端顯示 |
|---|---|---|---|
| `en_US.UTF-8` (已產生) | ✅ | 英文 (日期 `Jan 5, 2024`) | 正常 |
| `en_US.UTF-8` (未產生) | ❌ 回退 | 中文 (日期 `2024年01月05日`) | 亂碼 (若終端非 UTF-8) |
| `en_US` (無編碼後綴) | ✅ 通常映射 `en_US.ISO-8859-1` | 英文 | 正常 (單位元編碼) |
亂碼本質是 **「locale 無效 → 回退中文 → 編碼不匹配」**,補全 `en_US.UTF-8` locale 即可根治。