当我从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;
Run Code Online (Sandbox Code Playgroud)