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