在 Windows 电脑上写代码,Git可以说是不可或缺的工具之一。昨天我把 windows 机器上的Git 升级了一下,发现一个问题,ping/ipconfig命令时,输出的中文是乱码。

各种查原因之后,发现 Options 里 Text 选项卡中的 Character set 是 UTF-8,也就是说Git Bash 上的文字展示是 UTF-8 编码。这样设置可以正常识别 utf8 相关的文件,  但在 Mintty 窗口下运行一些 Win 上的命令时会出现乱码(比如 ping, ipconfig 等)

针对这个问题,解决方案有两种:

1、将 Character set 设置为 GBK。但是这样设置会导致另一个问题,在使用 vi 编辑 utf-8 编码的文件时,会出现乱码,所以不推荐。

2、使用 winpty 进行字符流转换。新版 Git for Windows 用的是 mintty 终端,不支持本机交互式应用程序,需要使用 winpty ( Git Bash 已自带)。

所以可以在命令前加上 winpty,如:

winpty ping baidu.com
winpty ipconfig

当然了上面的这种方案其实也是比较反人类的,不是很方便。但是这也是目前最好的解决方案了,相信官方也会很快意识到这个问题,在后续的更新版本中加以改进。

本文为 陈华 原创,欢迎转载,但请注明出处:http://www.ichenhua.cn/blog/post/27