2

例如:é进入é

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

4

2 回答 2

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);
于 2012-10-08T12:40:31.100 回答
4

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

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

$standard_string然后将使用您系统上的任何 Perl 标准编码。换句话说,从那时起您不必担心它)。

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

于 2012-10-08T12:29:00.633 回答