在git-bash下输入中文

Windows Terminal终于支持显示中文/输入中文了,真是大快人心。

我平时在Windows Terminal里面使用git-bash,输入中文一直会遇到一些问题,今天终于把问题折腾没了。

具体来讲,就是输入中文以后,要多次退格才能删除一个中文字符,而且即使删除了,仍然会有不可见字符。但是这个问题在我使用git-bash自带的mintty的时候又会神秘解决。

这是因为utf-8是不定长的编码,汉字占三个字节,但git-bash“认为”我使用的是定长的编码,汉字占两个字节。这样一来,按了两次退格之后,汉字就不显示了,但实际上还有一个字节没有被删除。

既然在mintty中问题被解决,说明mintty中应该做了某种配置,让git-bash默认使用utf-8。我上网查了一下,发现可以在~/.bashrc里面加上两行来解决这个问题:

1
2
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

我怀疑只需要其中一行就能起作用,但我懒得实验了。