perl文件打开api的默认字符编码?

时间:2013-02-19 17:48:16

标签: perl character-encoding

我正在使用Perl open在Solaris 10上打开新文件,如下所示:

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=

1 个答案:

答案 0 :(得分: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

我不知道在哪里或是否记录了这种行为。