解决部分程序中文乱码的问题
最近在使用 Git Bash 时,我发现中文显示“乱码”。本文记录了整个问题的解决过程,希望能为遇到类似情况的朋友提供参考。
修改 Git Bash 的配置
首先,我怀疑是 Git Bash 自身的字符编码设置不正确。这是最常见的原因。
默认情况下,Git Bash 使用的终端编码可能是 CP936 (GBK),而 Git 输出的是 UTF-8,两者不匹配就会导致乱码。
- 在 Git Bash 窗口右键,选择 “Options”。
- 在左侧导航栏中,选择 “Text”。
- 在右侧的 “Character set” 部分,选择 “UTF-8”。
- 点击 “Apply” 然后点击 “Save”。
- 关闭并重新启动 Git Bash,使设置生效。
设置 Git 的全局编码
除了终端编码,Git 自身在处理日志、提交信息时也会涉及编码。
建议设置 Git 的全局编码为 UTF-8,以避免提交记录或日志乱码。尤其是第一条命令,它能防止 Git 在输出中文路径时自动转义成类似 \uXXXX 的形式,这是中文文件名乱码的主要原因之一。
# 设置 Git 不转义路径中的特殊字符(对中文至关重要)
git config --global core.quotepath false# 提交信息使用 UTF-8 编码
git config --global i18n.commitencoding utf-8# 日志输出使用 UTF-8 编码
git config --global i18n.logoutputencoding utf-8
此时,重新打开 Git Bash 并查看中文文件名或日志,理论上应该能正常显示。
我满怀期待地重启了 Git Bash……但遗憾的是,乱码依旧存在。
系统区域设置
我很快注意到,不仅是 Git Bash,我电脑上的其他一些程序(如我的手心输入法)也出现了中文乱码。
这让我意识到——这很可能是一个系统级别的字符编码问题。于是,修复方向转向了 Windows 的系统区域设置。
设置步骤
- 按 Win+R 输入
intl.cpl
回车。 - 选择 管理 → 更改系统区域设置
- 确保设置为:
中文(简体,中国)
- 勾选 “Beta: 使用 Unicode UTF-8 提供全球语言支持(U)”
- 保存并重启电脑
我的Git Bash、输入法等均成功显示中文。
升级 Git 版本
注意,如果是 Git 单独出问题,且经过上面的设置后仍未能解决,可以考虑升级 Git 版本试试能否解决。
可以通过以下命令查看版本:
git --version
你可以选择以下方式升级:
- Git 官网下载安装:https://git-scm.com/downloads
- 部分新版 Git 自带了一个命令:
git update-git-for-windows
- 使用包管理工具,如 Winget、Scoop、Chocolatey等
升级后再次打开 Git Bash,乱码问题可能会自然消失。
总结
问题原因 | 对应解决方案 |
---|---|
Git Bash 终端编码不匹配 | 修改终端字符集为 UTF-8 |
Git 提交信息编码不一致 | 设置 Git 全局编码:i18n.* 、core.quotepath false |
Git 版本较旧 | 升级至最新版本 |
系统未启用 UTF-8 支持 | 修改系统区域设置并勾选“使用 Unicode UTF-8” |
当你在多个程序中都发现中文乱码时,优先检查系统的“非 Unicode 程序语言”与“UTF-8 支持”是否开启。