我有一组俄语字符串,我将其作为输入传递给 perl 脚本以将其存储到数据库中,但是当我在 Windows 控制台上打印相同的字符串时,我会从输入中获取字符。此外,数据库在列中插入了不同的字符。您能否分享一些有关该问题的指示。
问问题
315 次
1 回答
1
解码输入。编码输出。
数据库中数据的编码是什么?
说它是UTF-8。您将使用以下内容:
use Encode qw( decode );
my $row = ...;
$row->{text_field} = decode('UTF-8', $row->{text_field});
您的控制台期望的编码是什么?
chcp
您可以通过在提示符处运行并添加cp
到数字来找到答案。例如,在要使用的编码为 的机器上cp437
,您将获得以下输出:
>chcp
Active code page: 437
您将按如下方式处理编码:
use open ':std', ':encoding(cp437)';
于 2012-10-16T21:00:33.023 回答