问题描述
诡异之处在于,git bash 中某些指令输出的汉字(如 git log 中的comment)显示正常,某些指令输出的汉字(如 git cherry-pick 中的 comment,git push 中 remote message) 是乱码。
乱码的具体表现是,“测试建议"会显示为"娴嬭瘯寤鸿”。我们知道,这是将 UTF-8的"测试建议"按照 GBK 来解析出现的结果。执行 git push xxx 2> push.txt后,查看 push.txt,可知 git指令输出的字符编码是 UTF-8的。但在后面显示时被某个环节当成了 GBK。但是,git log 指令输出的 UTF-8 字符串却没有被当作 GBK。
到目前,我还没有在网上找到类似的情况。所以,并没有搜索得到答案。所有找到的资料都无法解决这个问题。包括 i18n,mintty设置,LESSCHARSET设置等等。
解决方法
长时间无果后,突然有一天想到了 windows中的非Unicode程序的编码设置。尝试使用 UTF-8后,git bash 中的所有指令中的中文都显示正常了。设置方法参考:
https://blog.youkuaiyun.com/xt_v2012/article/details/93784751