0

我有一组俄语字符串,我将其作为输入传递给 perl 脚本以将其存储到数据库中,但是当我在 Windows 控制台上打印相同的字符串时,我会从输入中获取字符。此外,数据库在列中插入了不同的字符。您能否分享一些有关该问题的指示。

4

1 回答 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 回答