好的,我在这里有点困惑。
我正在尝试为以utf8编码的iPhone应用创建Feed。
我们的西班牙语内容有很多拉丁字符(精确等)。我使用Entities.pm lib中的decode_entities函数,但我注意到它转换为的char值正在破坏我的feed - 我的意思是feed无效,即使有一些CDATA标签标题字段。经过进一步调查,我发现这个lib正在从一个html实体转换为它相应的unicode值,但它使用的是ISO-8859而不是utf8。
如何从html-entity转换为utf8?
答案 0 :(得分:4)
use Encode;
use HTML::Entities;
my $x = decode_utf8(decode_entities("α — ω"));
binmode STDOUT, ":utf8";
print $x;
(如果你直接打印$ x,你会得到“打印中的宽字符”警告)。
答案 1 :(得分:1)
事实证明问题不是Entities.pm,而是我用来打开文件的格式。我理所当然地认为Perl会自动在Utf-8中打开文件。
我将下面的行添加到我的文件顶部,现在认为Feed有效:
使用open':encoding(utf8)';