4

Perl スクリプトに問題があります。UNIX ライクなシステムでは、すべての Unicode 文字をä適切にコンソールに出力します。Windows コマンドラインでは、文字が無意味なグリフに分割されます。これを回避する簡単な方法はありますか?を使用してuse utf8;います。

前もって感謝します。

4

1 に答える 1

13

use utf8;ソースが UTF-8 を使用してエンコードされていることを Perl に伝えるだけです。

UNIXでも動作しません。正しく印刷されない文字列がいくつかあり ( print chr(0xE9);)、印刷されるほとんどの文字列では、「ワイド文字」の警告が表示されます ( print chr(0x2660);)。入力をデコードし、出力をエンコードする必要があります。

UNIX システムでは、通常は

use open ':std', ':encoding(UTF-8)';

Windows システムではchcp、コンソールのキャラクター ページを見つけるために を使用する必要があります。(私にとっては437です。)

use open ':std', ':encoding(cp437)';  # Encoding used by console
use open IO => ':encoding(cp1252)';   # Encoding used by files
于 2013-03-05T13:16:00.303 に答える