我使用Win7-64bit的cygwin,并与把“zh_CN.UTF-8”作为默认区域设置。 有时,一些从刚刚在cygwin的输出不能坏编码读到这样如下:
[junit] ▒▒▒▒: ▒Ҳ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ can't
任何的想法? 谢谢。
我使用Win7-64bit的cygwin,并与把“zh_CN.UTF-8”作为默认区域设置。 有时,一些从刚刚在cygwin的输出不能坏编码读到这样如下:
[junit] ▒▒▒▒: ▒Ҳ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ can't
任何的想法? 谢谢。
虽然sharajava已经发现自己的解决方案,我不得不说,这个解决方案是不是至少对我来说非常理想。 问题是,如果你改变文本(的“字符集”的终端选项mintty
实际上)到“GBK”,究竟会UTF-8字符显示在屏幕上? 他们会乱码,无法读取的代码。 我尝试对VIM,包括中国文字其中国欢迎文本或UTF-8编码的源代码是否显示为不可读代码。 这不是对我来说还是可以接受的,因为我想,大多数人。
最后,我想出了一个办法绕过Windows命令提示符(即缺陷cmd.exe
)并启用mintty
运行DOS命令而不乱码的痛苦。 这里是我的解决方案,它可能是有益的。
测试环境:
操作系统:Win7的64位中国简体
Cygwin的:64位
命令提示符:默认的代码页936
组态:
zh_CN.UTF-8
为大多数人所期望 Locale=zh_CN
和Charset=UTF-8
至.minttyrc
使得mintty
使用UTF-8作为输出编码 cmd /c chcp 65001
对.bashrc
现在你可以运行像DOS命令ipconfig
, taskkill
, help.exe
和format.com
等直接mintty
,即使在Linux命令,如伴侣less
, grep
。 每次你在bash登录时,它会告诉你Active code page: 65001
意义的输出编码cmd.exe
已经暂时改为UTF-8。
当代码页cmd.exe
更改为65001, cmd.exe
将不再使用中国作为提示文本语言(英语代替)和中国目录也不支持。 这是一个缺陷cmd.exe
并有无关mintty
。 不知何故, mintty
设法输出中国的字符, cmd.exe
与cp65001不能。 我无法解释这一点,无论如何,它的工作原理。
要设置的cygwin的区域,您可以添加以下代码添加到您.bashrc
:
export LC_ALL=zh_CN.UTF-8
export LC_CTYPE=zh_CN.UTF-8
export LANG=zh_CN.UTF-8
也可以看看:
在Windows命令行Unicode字符-怎么样?
我的应用程序打印国际字符,但我只看到灰色框
http://cygwin.com/faq-nochunks.html#faq.using.weirdchars
它只是这里的一些中国字符引起的。
更改文本的终端选项,选择字符集为“GBK”。 有用。