Perl 如何将特殊字符转换为UTF-8?

Perl 如何将特殊字符转换为UTF-8?,perl,Perl,当我从MySQL数据库中提取数据时,一些输出具有特殊字符, 当在例如emacs中打开时,它将解码为\240和\346 在UTF-8终端中显示时,特殊字符显示为� 因此,使用的编码方法是每个字符仅使用1字节 例如,我可以看到\346应该是æ 问题 Perl是否有一个模块可以将这些特殊字符编码为UTF-8?使用encode::decode将数据从任何编码解码为Perl的内部格式 然后,在将数据写入文件时,设置'utf8'层以使数据以UTF-8写入 use Encode; my $data_from

当我从MySQL数据库中提取数据时,一些输出具有特殊字符, 当在例如emacs中打开时,它将解码为
\240
\346

在UTF-8终端中显示时,特殊字符显示为

因此,使用的编码方法是每个字符仅使用1字节

例如,我可以看到
\346
应该是
æ

问题


Perl是否有一个模块可以将这些特殊字符编码为UTF-8?

使用
encode::decode
将数据从任何编码解码为Perl的内部格式

然后,在将数据写入文件时,设置
'utf8'
层以使数据以UTF-8写入

use Encode;

my $data_from_database = ...;

my $perl_data = decode('ISO-8859-1', $data_from_database);

binmode STDOUT, ':utf8';

print $perl_data;

?问题不在于emacs。我希望Perl将内容编码为UTF-8。您是否已将终端设置为显示UTF-8?您可能只需要使用编码/解码。请看:@Joe that solved the problem=)如果你把它贴出来,我什么时候会接受它作为答案。