【发布时间】:2011-03-19 15:43:55
【问题描述】:
我对 Perl 和 Encoding pragma 有疑问。
(我在任何地方都使用 utf-8,在输入、输出和 perl 脚本本身。我不想使用其他编码,永远不会。)
但是。当我写
binmode(STDOUT, ':utf8');
use utf8;
$r = "\x{ed}";
print $r;
我看到字符串“í”(这是我想要的 - 什么是 U+00ED unicode char)。但是当我像这样添加“使用编码”杂注时
binmode(STDOUT, ':utf8');
use utf8;
use encoding 'utf8';
$r = "\x{ed}";
print $r;
我看到的只是一个盒子字符。为什么?
此外,当我添加 Data::Dumper 并让 Dumper 像这样打印新字符串时
binmode(STDOUT, ':utf8');
use utf8;
use encoding 'utf8';
$r = "\x{ed}";
use Data::Dumper;
print Dumper($r);
我看到 perl 将字符串更改为 "\x{fffd}"。为什么?
【问题讨论】:
标签: perl