我在让 unicode 适用于 git-bash (在 Windows 7 上)时遇到一些麻烦。我尝试了很多事情但没有成功。虽然,我不太确定造成这种情况的原因,所以我可能在错误的方向上工作。
看来这应该是可能的,因为 cmd.exe 的编码可以使用“chcp 65001”更改为 unicode。
以下是我尝试过的一些操作(除了查看 GUI 中的配置选项之外)。
-
在“.bashrc”中设置环境变量。我想这行不通是有道理的,因为我认为这是 Linux 的事情。 “区域设置”命令不存在。
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 测试文件时权限被拒绝。然而,catting 一个没有 unicode 的文件就可以了。如图所示,退出 cmd.exe 我仍然可以“cat”该文件。使用我的默认编码(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 标志(这是有道理的,它不起作用,因为它不完全是如果我理解正确的话,但它与 unicode 有关,所以我尝试了)。
C:\Windows\SysWOW64\cmd.exe /U /C "C:\Program Files (x86)\Git\bin\sh.exe" --login -i
由于我更喜欢使用 Console2,因此我尝试将名为 CodePage 且值为 65001(十进制)的双字值添加到 Windows 注册表中的 [HKEY_CURRENT_USER\Console] 以及 [HKEY_CURRENT_USER\Console\Git Bash] 下。这似乎与设置“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 连接到它,但这是错误的! ; )
附言。有没有 git-bash 的官方文档?
我在 MSYS Git 2.8.0 中遇到了同样的问题,结果发现它只需要更改配置。
$ git --version
git version 2.8.0.windows.1
我的系统中 Git Bash 控制台的默认配置不显示希腊文件名。
$cd ~
$ls
AppData/
'Application Data'@
Contacts/
Cookies@
Desktop/
Documents/
Downloads/
Favorites/
Links/
'Local Settings'@
NTUSER.DAT
.
.
.
''$'\316\244\316\261'' '$'\316\255\316\263\316\263\317\201\316\261\317\206\316\254'' '$'\316\274\316\277\317\205'@
最后一行应显示“Τα έγγραφά μου”,即“我的文档”的希腊语翻译。为了修复它,我按照以下步骤操作:
-
检查您现有的区域设置配置
$locale
LANG=en
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=
如上所示,在我的例子中它不是 UTF-8
Change the locale to a UTF-8 encoding. Click the icon on the left side of MINGW title bar, select "Options" and in the "Text" category choose "UTF-8" Character set. You should also choose a unicode font, such as the default "Lucida Console". My configuration looks as following:
-
更改当前窗口的语言(无需在以后的窗口上执行此操作,因为它们将使用步骤 2 的设置创建)
$ LANG='C.UTF-8'
-
ls 命令现在应该正确显示
AppData/
'Application Data'@
Contacts/
Cookies@
Desktop/
Documents/
Downloads/
Favorites/
Links/
'Local Settings'@
NTUSER.DAT
.
.
.
'Τα έγγραφά μου'@
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)