- 论坛徽章:
- 0
|
本帖最后由 paktc 于 2014-01-11 08:37 编辑
在XP下面记事本能够保存的编码类型就以下几种:
UTF-8,UTF-16 ,UTF-16 Big Endian ,ANSI(ASCII以内的字符时是ASCII,含汉字的时候实际是GBK编码)
写了个函数通过中文字符作自我判断 (也许没什么用处 )- print recogn();
- <STDIN>;
- sub recogn {
- my $cn="中";
- my $code;
- my @arr=split("",$cn);
- if ($#arr == 0) { # 'Unicode' 4e2d
- my $head;
- open READ,"<:raw","$0";
- read(READ,$head,2);
- close READ;
- if ($head eq "\xfe\xff") {
- $code='UTF-16BE';
- } else {
- $code='UTF-16LE';
- }
- } elsif ($#arr == 1) { # 'GBK' d6 d0
- $code='ANSI';
- } elsif ($#arr == 2) { # 'UTF-8' e4 b8 ad
- $code='UTF-8';
- } else {
- $code='WHAT THE **** ?';
- }
- }
复制代码 |
|