当我从MySQL数据库中提取数据时,某些输出有特殊字符,
当在例如打开时emacs将其解码为\240
和\346
。
当在UTF-8终端中显示时,特殊字符显示为�
因此,使用的编码接缝每个字符仅使用1个字节。
我可以,例如请注意\346
应为æ
。
问题
Perl是否有一个可以将这些特殊字符编码为UTF-8的模块?
答案 0 :(得分:3)
使用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;