使用 Xshell/PuTTY 連線 CentOS/RedHat 時,中文顯示亂碼通常源於**客戶端編碼與伺服器端語系不匹配**。本文提供雙邊設定修正方案。
cd /etc/sysconfig
cp i18n i18n.bak
echo "" > i18n
vi i18n
# 寫入以下內容:
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
副作用:伺服器本地物理終端(螢幕鍵盤)會顯示亂碼,因字型不支援 GB18030。若無本地操作需求可接受。
**Xshell 設定:**
LANG 一致)。**PuTTY 設定:**
**優點**:伺服器端 /etc/sysconfig/i18n 保持 en_US.UTF-8 或 zh_CN.UTF-8,本地終端與遠端同時正常顯示中文。
echo "測試中文"
date
ls /tmp/中文目錄
客戶端 ~/.ssh/config:
Host myserver
HostName 192.168.1.100
SendEnv LANG LC_*
伺服器端 /etc/ssh/sshd_config:
AcceptEnv LANG LC_*
重啟 sshd,連線時自動同步語系環境變數。
| 伺服器 LANG | 客戶端編碼設定 |
|---|---|
| zh_CN.UTF-8 | UTF-8 |
| zh_CN.GB18030 | GB18030 / GBK |
| zh_CN.GB2312 | GB2312 / GBK |
| en_US.UTF-8 | UTF-8 (中文靠字型支援) |