无法在Windows环境中生成与perl输入相同的俄语字符

时间:2012-10-16 19:14:16

标签: perl character-encoding

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

1 个答案:

答案 0 :(得分: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)';