Git 中文顯示亂碼
Contents
在 Windows 的 CMD 或 PowerShell 中使用 Git 指令時,中文檔案名稱常常顯示為奇怪的八進位跳脫序列(如 \344\270\255\346\226\207)。本文說明亂碼的原因與各種解決方式。
亂碼的原因
core.quotepath 問題(檔案名稱亂碼)
Git 預設開啟 core.quotepath,這個設定會對路徑中的非 ASCII 字符(包含中文)以八進位跳脫序列(octal escape)表示:
|
|
解決方式:關閉 core.quotepath
|
|
設定後,git status、git add 等指令顯示的中文檔名就會正常。
git log 中文亂碼(CMD 環境)
在 CMD 中執行 git log 看到中文 commit message 亂碼,是因為 CMD 預設使用 Big5(CP950)編碼,而 Git 輸出是 UTF-8:
|
|
gitk 圖形介面中文亂碼
|
|
i18n 相關設定
Git 的 i18n 設定控制 commit message 的編碼處理:
|
|
大多數情況下,只要確保 commitEncoding 和 logOutputEncoding 都是 UTF-8,就不會有問題。
Windows Terminal 的設定
Windows Terminal 預設使用 UTF-8,通常不需要額外設定。若仍有問題,確認:
- 在 Windows Terminal 的設定中,確認字型支援中文(如「微軟正黑體」或「Noto Sans CJK」)
- 在 PowerShell Profile 中加入:
|
|
CMD 中的字符集設定
|
|
chcp 65001 將 CMD 的 Code Page 切換為 UTF-8,之後 Git 的中文輸出就能正確顯示。可以在 ~/.gitconfig 或 Git Bash 的設定中加入 alias 自動執行。
完整的 .gitconfig 建議設定
|
|