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

时间:2012-03-09 15:49:02

标签: perl

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

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

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

我可以,例如请注意\346应为æ

问题

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

1 个答案:

答案 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;
相关问题