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

San*_*ing 5 perl

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

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

因此使用的编码接缝仅使用每个字符1个字节.

我可以看到\346应该是æ.

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

zgp*_*max 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;
Run Code Online (Sandbox Code Playgroud)