L
O
A
D
I
N
G

解决部分程序中文乱码


解决部分程序中文乱码

最近在使用 Git Bash 时,我发现终端中的中文显示成了“乱码”。本文记录了整个问题的解决过程,希望能为遇到类似情况的朋友提供参考。


一、修改 Git Bash 的配置

首先,我怀疑是 Git Bash 自身的字符编码设置不正确。这是最常见的原因。默认情况下,Git Bash 使用的终端编码可能是 **CP936 (GBK)**,而 Git 输出的是 UTF-8,两者不匹配就会导致乱码。因此,我们需要将终端的编码方式改为 UTF-8,以保证一致性。

操作步骤:

  1. 在 Git Bash 窗口右键,选择 Options
  2. 在左侧导航栏中选择 Text
  3. 在右侧的 Character set 部分选择 UTF-8
  4. 点击 ApplySave
  5. 关闭并重新启动 Git Bash,使设置生效

设置字符编码


二、设置 Git 的全局编码

除了终端编码,Git 自身在处理日志、提交信息时也会涉及编码。
建议设置 Git 的全局编码为 UTF-8,以避免提交记录或日志乱码。

尤其是第一条命令 core.quotepath false,它能防止 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 的系统区域设置

设置步骤

  1. Win+R 输入intl.cpl回车。

  2. 选择 管理更改系统区域设置

  3. 确保设置为:

    中文(简体,中国)
  4. 勾选 “Beta: 使用 Unicode UTF-8 提供全球语言支持(U)”

  5. 保存并重启电脑

使用UTF-8

重启后,我的 Git Bash、输入法等程序均成功显示中文,问题彻底解决。

Git显示正常

输入法正常


四、升级 Git 版本

如果是 Git 单独出问题,且经过上面的设置后仍未能解决,可以考虑升级 Git 版本

查看当前版本:

git --version

升级方式如下:

  • 官网下载覆盖安装(最稳妥)https://git-scm.com/downloads

  • 使用 Git 自带命令(部分版本支持)

    git update-git-for-windows
  • 使用包管理工具升级(推荐命令行用户)

    # Windows 官方 Winget
    winget upgrade --id Git.Git
    
    # 或使用 Scoop / Chocolatey
    scoop update git
    choco upgrade git

升级后再次打开 Git Bash,乱码问题往往会自然消失。


五、总结

问题原因 对应解决方案
Git Bash 终端编码不匹配 修改终端字符集为 UTF-8
Git 提交信息编码不一致 设置 Git 全局编码:i18n.*core.quotepath false
Git 版本较旧 升级至最新版本(官网 / Winget / Scoop / Chocolatey)
系统未启用 UTF-8 支持 修改系统区域设置并勾选“使用 Unicode UTF-8”

✅ 当你在多个程序中都发现中文乱码时,优先检查系统的“非 Unicode 程序语言”与“UTF-8 支持”是否开启。


文章作者: loyeh
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 loyeh !
评论
  目录