2

次のように、Solaris10で新しいファイルを開くためにPerlopenを使用しています。

open($fh, ">$filePath");

この呼び出しを使用したシステムのデフォルトのファイル文字エンコードは何ですか?

localeコマンドからの出力を以下に示します。

LANG=
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=
4

1 に答える 1

2

これは私が思っていたほど簡単な質問ではありませんでした。

デフォルトのエンコーディングはraw、です。これはバイナリデータに適しています。順序値が256未満の文字は、次のように渡されます。

$ perl -e 'print chr(0xFF)' | od -c
00000000 377
00000001

不思議なことに、順序値255を超える文字を書き込もうとするとどうなるかということです。そうすると、UTF-8エンコーディングを取得したように見えます。

$ perl -e 'print chr(0x100)' | od -c
00000000 304 200
00000002

この動作がどこに文書化されているか、または文書化されているかどうかはわかりません。

于 2013-02-19T18:04:31.743 に答える