我在让 unicode 为 git-bash 工作(在 Windows 7 上)时遇到了一些麻烦。我尝试了很多事情都没有成功。虽然,我不太确定对此负责的原因是什么,所以我可能会朝着错误的方向努力。
看起来这应该是可能的,因为 cmd.exe 的编码可以使用 'chcp 65001' 更改为 unicode。
以下是我尝试过的一些事情(除了在 GUI 中查看配置选项很明显)。
在“.bashrc”中设置环境变量。我想这是有道理的,因为我认为这是一个 linux 的东西。'locale' 命令不存在。
export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 export LANGUAGE=en_US.UTF-8
从 cmd.exe 开始,使用 'chcp 65001' 将编码更改为 unicode,然后启动 git-bash。这导致我在尝试对我的 unicode 测试文件进行分类时获得权限被拒绝。但是,对没有 unicode 的文件进行分类就可以了。如图所示,退回到 cmd.exe 我仍然可以“捕获”该文件。使用我的默认编码(437),我可以在 bash 中对文件进行分类(没有权限被拒绝,但输出是捏造的)。
S:\>chcp 65001 Active code page: 65001 S:\>"C:\Program Files (x86)\Git\bin\sh.exe" --login -i zarac@TOWELIE /z cat /s/unicode.txt cat: write error: Permission denied zarac@TOWELIE /z cat /s/nounicode.txt abc zarac@TOWELIE /z L /s/unicode.txt -rw-r--r-- 1 zarac Administ 7 May 18 10:30 /s/unicode.txt zarac@TOWELIE /z whoami towelie\zarac zarac@TOWELIE /z exit Z:\>type S:\unicode.txt abc£
在启动 shell 时使用 /U 标志(它不起作用是有道理的,因为它不完全是 if-i-understand-correctly,但它与 unicode 有关,所以我尝试了它)。
C:\Windows\SysWOW64\cmd.exe /U /C "C:\Program Files (x86)\Git\bin\sh.exe" --login -i
由于我更喜欢使用 Console2,因此我尝试在 [HKEY_CURRENT_USER\Console] 和 [HKEY_CURRENT_USER\Console\Git Bash] 下的 Windows 注册表中添加一个名为 CodePage 且值为 65001(十进制)的 dword 值。这似乎与设置“chcp 65001”具有相同的效果,接受它是“自动的”。(http://stackoverflow.com/questions/379240/is-there-a-windows-command-shell-that-will-display-unicode-characters)
JPSoft的TCC/LE
PowerCMD
堆栈溢出
鸭鸭
ixquick / 谷歌
因此,如果可以解决该权限问题,方法 2 似乎是可行的。但是,我对几乎任何解决方案都持开放态度,尽管我更喜欢使用 Console2(主要是因为它具有漂亮的选项卡功能)。也许一种解决方案是设置一个 SSH 服务器,然后使用 Putty/Kitty 连接到它,但这是错误的!; )
PS。git-bash 有官方文档吗?