我有一個Perl和Encoding雜注的問題。Perl的使用編碼雜注破壞UTF字符串
(我使用UTF-8無處不在,輸入,輸出,Perl腳本自己。我不希望使用其他的編碼,永遠。)
不過。當我寫
binmode(STDOUT, ':utf8');
use utf8;
$r = "\x{ed}";
print $r;
我看到字符串「í」(這是我想要什麼 - 什麼是U + 00ED的Unicode字符)。但是當我添加這樣的「使用編碼」雜注
binmode(STDOUT, ':utf8');
use utf8;
use encoding 'utf8';
$r = "\x{ed}";
print $r;
我看到的只是一個盒子角色。爲什麼?
而且,當我添加數據::自卸車,讓自卸車打印新的字符串,這樣
binmode(STDOUT, ':utf8');
use utf8;
use encoding 'utf8';
$r = "\x{ed}";
use Data::Dumper;
print Dumper($r);
我看到的Perl 改變字符串到"\x{fffd}"
。爲什麼?
另請參閱:http://stackoverflow.com/questions/492838/why-do-my-perl-tests-fail-with-use-encoding-utf8 – 2011-03-19 16:09:26