*TXT
ASCII以外の文字を持つファイルがあります。 é ê ù
。ただし、*TXT
ファイルモードはANSI
(デフォルトモード)です。PerlはASCII以外の文字を認識しません
私はPerlで非ASCII文字を読み取ってhexadecimal entities
に変換するためにutf8
を使用しています。 ANSI
モードを備えた*TXT
ファイルはその後、Perlが動作しない場合
問題がある、しかし*TXT
モードでは、スクリプトは問題なく働いているutf8
です。
たPerl:
use open ':encoding(utf8)';
binmode STDOUT, ':utf8';
...
#assume $amatch contains non-ascii characters
$amatch = ord($amatch);
$amatch = sprintf("&#x%x;", $amatch);
誰もがこのためのソリューションを持っていますか?
とは対照的に、
あなたはどのように開いて表示し、特定のファイルからデータを読み取ることはありません。しかし、STDINからコードの最初の行に明示的に設定すると、データがUTF8でエンコードされていると表示されます。この場合、データがUTF8でエンコードされていないと失敗します。 –
私は確信していると確信しています – ssr1012
ヒント:よく使われるエンコーディングの名前は "UTF-8"です。 「UTF8」はあなたが望まないものです。 – ikegami