如何在Perl中将ASCII格式转换为UTF8

时间:2012-10-08 12:20:25

标签: perl utf-8

例如:é进入é

有时用户获得ascii格式字符集而不是法语字符集...所以任何人都可以帮助我在perl中有任何可以将ascii转换为UTF-8的函数

2 个答案:

答案 0 :(得分:4)

这最好由Perl内置的Encode模块处理。以下是如何转换字符串的简单示例:

my $standard_string = decode("ascii", $ascii_string);

$standard_string将在你的系统中使用Perl的标准编码。换句话说,你不应该担心它从那一点开始。

链接文档提供了许多其他可以做的事情示例 - 例如设置输入文件的编码。一个相关的有用模块是Encode::Guess,它可以帮助您确定字符编码是否未知。

答案 1 :(得分:4)

听起来您想将HTML实体转换为UTF-8。为此,请使用HTML::Entitiesdecode_entities功能。

这将为您提供一个没有附加特定编码的Perl字符串。以UTF-8编码输出字符串:

print Encode::encode_utf8(decode_entities($html_string));

或者,在STDOUT上设置UTF-8 PerlIO层,Perl将为您编码UTF-8中的所有内容 - 如果输出多个字符串,则非常有用。

binmode STDOUT, ':utf8';
print decode_entities($html_string);