我正在使用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=
答案 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
我不知道在哪里或是否记录了这种行为。