Win7-64bit で cygwin を使用しており、デフォルトのロケール設定として「zh_CN.UTF-8」を使用しています。ときどき、cygwin からの出力の一部が、次のような不適切なエンコーディングで読み取れないことがあります。
[junit] ▒▒▒▒: ▒Ҳ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ can't
何か案が?ありがとう。
sharajava は自分で解決策を見つけましたが、この解決策は少なくとも私にとってはあまり好ましいものではないと言わざるを得ません。問題は、テキストの端末オプション (実際には「CharSet」mintty
) を「GBK」に変更すると、UTF-8 文字が画面に表示されることです。それらは乱雑で判読できないコードになります。中国語のウェルカム テキストまたは漢字を含む UTF-8 でエンコードされたソース コードが読み取り不能なコードとして表示されるかどうか、VIM で実験しました。それは私にとって、または私が推測するように、ほとんどの人にとって受け入れられません。
最後に、Windows コマンド プロンプト (つまりcmd.exe
)の欠陥を回避し、mintty
乱雑なコードに苦しむことなく DOS コマンドを実行できるようにする方法を見つけました。これが私の解決策であり、役立つかもしれません。
テスト環境:
OS: Win7 64 ビット中国語 (簡体字
) Cygwin: 64 ビット
コマンド プロンプト: デフォルトのコード ページ 936
構成:
zh_CN.UTF-8
ほとんどの人が望むように Cygwin のロケールを設定しますLocale=zh_CN
します。Charset=UTF-8
.minttyrc
mintty
cmd /c chcp 65001
に追加.bashrc
、、などipconfig
のDOS コマンドをで直接実行できるようになりました。bash にログインするたびに、出力エンコーディングが一時的に UTF-8 に変更されたことを意味するメッセージが表示されます。taskkill
help.exe
format.com
mintty
less
grep
Active code page: 65001
cmd.exe
のコード ページがcmd.exe
65001 に変更されると、cmd.exe
はヒント テキスト言語として中国語を使用しなくなり (代わりに英語)、中国語のディレクトリもサポートされなくなります。これは の欠陥でcmd.exe
あり、 とは関係ありませんmintty
。何とか、cp65001 では出力できないmintty
漢字を出力することができました。cmd.exe
とにかく、これを説明することはできません。
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
ここの漢字が原因です。
Text の Terminal Options を変更し、文字セットを「GBK」に設定します。できます。