sha*_*ava 2 encoding cygwin character
我使用Win7-64bit的cygwin,并与把"zh_CN.UTF-8"作为默认区域设置.偶尔,来自cygwin的一些输出无法使用如下错误编码读取:
[junit] ????: ?????????????????? can't
Run Code Online (Sandbox Code Playgroud)
任何的想法?谢谢.
虽然sharajava已经找到了自己的解决方案,但我不得不说这个解决方案至少对我来说不是很好.问题是如果您将文本的终端选项(mintty
实际上是"CharSet" )更改为"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
Run Code Online (Sandbox Code Playgroud)
另请参阅:
Windows命令行中的Unicode字符 - 如何操作?
我的应用程序打印国际字符,但我只看到灰色框
归档时间: |
|
查看次数: |
1409 次 |
最近记录: |