Cygwinにはいくつかの問題があります。
cygwinでmakeユーティリティを使用すると、テキストの代わりに長方形が印刷されます。また、テキストが英語でない場合(たとえば、ポーランド語やロシア語など)、文字の代わりに長方形が表示されます。ただし、シンボルを印刷すると表示されます。私は mintty と XTerm を使いますが、 mintty が良いです。
locale
Xtermの出力:
$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_ALL=
しかし、問題は、私のWindows XPが英語になっていますが、アメリカにはなく、ロシア語の時間と日付の設定があるということです。それは問題でしょうか?
他の言語のテキストを正しく見たいのですが、方法はありませんか?
minttyとxtermも少し異なる動作をします。私はポーランド語のテキストファイルを持っています。cat
minttyはテキストに長方形を提供しませんが、cat
xtermはいくつかの文字を含む長方形を提供します。
minttyでは、makeの出力は次のようになります。
$ make
make: ▒▒▒▒ `default' ▒▒ ▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒.
このように:
$ make
make: �� `default' � ���� ����� ���.
xtermで。
いくつかの言語で問題を解決する方法を見つけました。https://stackoverflow.com/questions/13094248/how-do-i-get-accented-letters-to-actually-work-on-bash そこに書かれているようにminttyオプションを設定し、ISO-8859-2文字セットを指定すると、ポーランド語のテキストがよく見えます。わかりません。テキストをutf-8形式で保存しますが、テキストがANSI形式のように文字セットを設定する必要があるのはなぜですか?
文字セットをCP1251に設定すると、make結果のみが表示されます(ロシア語になっていますが、理由はわかりません)。
答え1
注:私はOPに彼の質問を出力に更新するように依頼しました。locale
ロケールの問題があるようです。を使用して現在のロケールを確認できますlocale
。端末が認識できない形式で出力されるようにするLC_*
設定がある可能性が高いです。make
UTF8文字セットを選択し、UTF8文字列を解析またはサポートするように設定されていない端末がある場合は、この内容を表示できます。同様に、ロケールがutf-8ではなく、端末がutf-8を表示するように設定されている場合、同様の問題が表示されます。 Minittyは以下をサポートします。
$ perl -le 'binmode(STDOUT, ":utf8"); print "\x{0e44}\x{0e45}\x{0e46}";'
ไๅๆ
LC_ALL=C make
またはを試して、export LC_ALL=C && make
ブロック出力が消えていることを確認してください。
utf8とANSIの違いに関する質問に答えるために、utf8にはより大きな文字セットがあります。この問題を解決するために、utf8は2ビットを使用して拡張文字シーケンスを記述します。ISO-8859-2などの文字セットは1ビットのみを使用します。しかし、このトリックがない場合品目明細ファイルとして保存すると(常にサポートされていない)、使用するプログラムは違いを知らないため、locale
これらの文字列を解釈する方法の設定に依存します。これらの問題を複雑にすることは、すべてのアプリケーションがそうではないということです。サポートするutf8。エンコード、Unicode、utf8 に関する詳細については、次をご覧ください。ウィキペディア。ロシア語のテキストをUnicodeにエンコードする必要がある場合は、次のようにUnicodeシーケンスを見つけることができます。ウィキペディア返品。
Makefileで拡張文字を使用している場合は、その文字が実行したいエンコードと一致することを確認する必要があります。
答え2
minttyが設定するフォントとロケールは何ですか?ミントウィンドウの左上をクリックして「オプション...」を選択し、「テキスト」をクリックすると設定が見つかります。
私のフォント設定はConsolas、サイズ11です。ロケール:en_US、文字セット:UTF-8。
まず試してみて、ロケールをロシア語に設定してみてください。