Git使用 (十七) 解决Git Bash中文乱码

本文介绍了在Git Bash中遇到中文乱码的问题及其原因,分析了三种解决方案,并重点讲解了如何通过修改VS2017编码设置为UTF-8来解决。此外,还提供了相关配置和插件的使用方法,帮助开发者避免中文乱码问题。

一、前言

讲讲小张的感受:我没有接触过Git,所以看了很多视频,对于入门使用确实只要知道git clone,git add,git commit,git push,git merge ,确实也就足够了。但是我很好奇背后的原理,为什么要用git add到暂存区而不是直接git commit?很多指令之间为什么要按一定的顺序执行?所以这个系列我以初学的时候,小白的角度从安装到工作原理(有的是我自己的见解,如果感觉不对,欢迎指正),再到实际应用!另外,推荐看一遍第三个参考视频,然后看一下第四个参考视频,对工作原理的讲解和实际应用确实不错!

二、 Git Bash中文乱码

git status文件名称使用中文时被转义为\xx\xx\xx

image-20220207210306105
这里以vs2017编译器为例子,不同的编译器默认编码不同

Q:为什么会乱码?
A:Git开发核心是Linux系统,使用UTF8编码,Windows使用GBK编码导致中文目录乱码,VS2017默认GBK编码导致代码中文注释乱码

解决方案:

  1. 把三者的编码设置成UTF8
  2. 把三者的编码设置成GBK

方案一,把vs设置成UTF8问题不大,但是把Windows设置成UTF8可能一些旧的软件以及他们生成的文件会出现乱码,不支持UTF8编码。所以我没有尝试方案一

方案二,修改Git的配置为GBK,但是Windows的部分文件格式例如.txt文件使用UTF-8编码,其它文件又看不到了。得不偿失

方案三,前两个方案的折中,禁止Git在读取文件目录时,对文件名字中的汉字转义成UTF-8格式。修改VS2017的默认编码为UTF-8

在Git Bash窗口使用这条命令(如果想取消,把false替换成true)

#core.quotepath设为false的话,就不会对0×80以上的字符进行转义。中文显示正常
git config --global core.quotepath false

现在文件名称是中文显示了,但是git diff或者vimcat在Git Bash窗口查看C++文件内容时,也会乱码(绿色是我修改后的样子)

img-eJ4zLbOy-1645324914700

单独设置编译器的编码方式

  1. 首先VS2019 设置显示”高级保存选项

  2. 先打开一个程序,鼠标点一下文件内容,让光标显示出来,不然高级保存选项是灰色

  3. 文件→高级保存选项选择Unicode(UTF-8 带签名)单独设置单个程序的编码方式

但是这样很不方便,在工具→扩展和更新→联机搜索Force UTF-8(With BOM),使用这个插件,保存时默认为UTF-8编码

扩展插件里还有一个Force UTF-8(No BOM)No BOM就是不带签名,这个签名的作用就是在运行代码的时候,告诉VS,这段代码用的是UTF-8,如果不告诉VS的话就默认用GBK去转义中文注释,Git Bash不会乱码了,但是VS运行窗口会乱码

三、专栏总结

到这里,本专栏就结束啦!初学建议使用Gitee练手,因为Github一方面被ban了,一方面全英文,先使用Gitee网页熟悉页面,GithubGitee页面布局大同小异。

仓库规则:Gitee 配额Github配额。企业版自己看吧,大家都是个人估计也用不到

免费版GithubGitee
访问速度偶尔404,解决办法自己搜,博客不让发
仓库数量无限1000个
仓库容量单个仓库≤1G,单文件≤100M,仓库总容量不限单个仓库≤500M,单文件≤50M,仓库总容量5G
仓库成员公共,私有仓库协作人数不限公共有仓库不限,所有私有仓库总的协作人数≤5

熟练后建议使用Github,理由通过对比已经很明显了

多敲 多练 多查!指令有很多,多敲可以结合自身情况去记忆其它功能 拜拜!!!

专栏速览:

  1. Git使用 从入门到入土 收藏吃灰系列(一) 专栏前言
  2. Git使用 从入门到入土 收藏吃灰系列(二) Git的安装与配置
  3. Git使用 从入门到入土 收藏吃灰系列(三) Git常用命令
  4. Git使用 从入门到入土 收藏吃灰系列(四) Git工作原理
  5. Git使用 从入门到入土 收藏吃灰系列(五) Git本地仓库搭建
  6. Git使用 从入门到入土 收藏吃灰系列(六) 链接远程仓库
  7. Git使用 从入门到入土 收藏吃灰系列 (七) 同时配置Gitee、Github 公钥
  8. Git使用 从入门到入土 收藏吃灰系列 (八) 什么是分支 分支的作用
  9. Git使用 从入门到入土 收藏吃灰系列 (九) git reset 移除暂存区与版本回退
  10. Git使用 从入门到入土 收藏吃灰系列 (十) 详谈push、fetch、pull
  11. Git使用 从入门到入土 收藏吃灰系列 (十一) 下载所有远程仓库分支
  12. Git使用 从入门到入土 收藏吃灰系列 (十二) git merge 与 git rebase
  13. Git使用 从入门到入土 收藏吃灰系列 (十三) git stash、git check-pick、git tag、git diff
  14. Git使用 从入门到入土 收藏吃灰系列 (十四) 清除git仓库的所有提交记录
  15. Git使用 从入门到入土 收藏吃灰系列 (十五) 自定义Git命令
  16. Git使用 (十六) Github上的小按钮
  17. Git使用 (十七) 解决Git Bash中文乱码
### 解决 VSCode 中使用 Git Bash 出现中文乱码的方法 #### 设置正确的字符编码 为了确保在 VSCode 使用 Git Bash 时不出现中文乱码,需确认终端使用的字符集为 UTF-8。可以通过修改 Windows 的区域设置来实现: 1. 打开“控制面板”,选择“时钟和区域”下的“更改日期、时间或数字格式” 2. 切换至“管理”选项卡,点击“更改系统区域设置” 3. 勾选“Beta版:使用 Unicode UTF-8 提供全球语言支持” 此操作有助于从根本上解决问题。 #### 配置文件调整方法 对于 Git 自身而言,在全局范围内应用以下配置可以有效防止乱码现象的发生[^1]: ```bash git config --global core.quotepath false ``` 上述命令的作用在于让 `status` 输出不再采用八进制转义序列表示特殊字符,从而能够正常展示中文路径名。 另外,还需针对不同场景做进一步优化配置[^3]: ```ini [gui] encoding = utf-8 [i18n] commitEncoding = utf-8 [svn] pathnameencoding = utf-8 ``` 这些设定分别指定了图形界面、提交信息以及 Subversion 路径名称所使用的字符编码形式均为 UTF-8 编码标准。 最后,考虑到部分情况下可能是由于 PowerShell 或者 CMD 环境变量影响到了 Git Bash 的表现效果,建议检查并适当调整环境变量 PATH 的顺序,优先保留 MinGW64 或 MSYS2 类 Unix 模拟层的相关目录位置。 通过以上措施综合处理后,通常可以在很大程度上缓解甚至彻底消除 VSCode 下 Git Bash 存在的中文乱码困扰。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值