Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Win7 使用 Xshell 出現亂碼?終端編碼設定為 UTF-8 一秒解決

編輯:Win7 常見問題解答
Xshell中文檔名亂碼
屬性終端編碼設定

現象與成因

連線 Linux 伺服器,`ls`、`cat` 中文檔名/內容顯示亂碼 (如 `???`、``、亂碼字元)。核心原因:**Xshell 終端編碼與遠端伺服器實際編碼不匹配**。

  • 現代 Linux 發行版預設 Locale 為 `UTF-8` (如 `en_US.UTF-8`、`zh_CN.UTF-8`)。
  • Xshell 破解版/舊版/預設值可能為 `ANSI`/`GBK`/`Default`,導致解碼錯誤。
  • 正版 Xshell 中文版預設即為 UTF-8,通常無此問題。

一鍵修復:設定終端編碼為 UTF-8

  1. Xshell 會話視窗中,點擊工具列 「屬性」 (或 Alt+P)。
  2. 左側分類選擇 「終端機」 / 「Terminal」。
  3. 右側 「編碼」 / 「Encoding」 下拉選單選擇 「Unicode (UTF-8)」。
  4. 點「確定」,當前會話即時生效,中文顯示恢復正常。

進階:設定為預設值,新會話自動套用

  1. 「工具」→ 「選項」→ 「終端機」→ 「編碼」→ 選「Unicode (UTF-8)」→ 「設為預設」/「確定」。
  2. 或在「新建會話精靈」的「終端機」頁簽預設 UTF-8。

伺服器端驗證與配合設定

  1. SSH 登入後執行 `locale`,確認 `LANG`、`LC_ALL` 含 `UTF-8`。
  2. 若伺服器非 UTF-8 (舊系統可能為 `zh_CN.GBK`),Xshell 編碼需對應改為 `GBK`/`CP936`,**但強烈建議伺服器遷移至 UTF-8 Locale**。
  3. `/etc/ssh/sshd_config` 確認 `AcceptEnv LANG LC_*` 已啟用,允許客戶端傳遞 Locale 環境變數。

避坑指南

誤區:「修改字型就能解決亂碼。」
事實: 字型僅決定「如何畫出字元」,編碼決定「位元組如何解碼為字元」。編碼錯誤時,字元本身就是錯的,換任何字型都是亂碼。

誤區:「只在當前會話改編碼。」
建議: 設為全域預設,避免每次新連線手動調整。

強烈建議: **購買/使用正版 Xshell (個人免費版) 或改用開源替代品 (Tabby, Termius, Windows Terminal + SSH, MobaXterm Free)**。破解版存在安全風險、無更新、功能受限,且不支援現代 SSH 特性 (Ed25519 金鑰、FIDO/U2F、ProxyJump 等)。

Copyright © Windows教程網 All Rights Reserved