Perl 什么';Postgresql中的uft-8字符串发生了什么?

Perl 什么';Postgresql中的uft-8字符串发生了什么?,perl,postgresql,utf-8,character-encoding,dbix-class,Perl,Postgresql,Utf 8,Character Encoding,Dbix Class,在我的过程中,我解析了GoogleMapsKML,并使用perl将其输入数据库,通过 如果我使用psql拉出数据,一切看起来都很好,但是如果我通过DBIx::Class拉出数据,所有utf-8字符看起来都被破坏了 在sqlite3中完成的完全相同的过程非常有效 我在客户端启用了pg\u enable\u utf8 有人知道为什么会这样吗? 如果您使用的是INSERT,则上述警告可能与您的流程有关 另外,可能让脚本执行将CLIENT_编码设置为“value”将有帮助,其中value=UTF8。有关

在我的过程中,我解析了GoogleMapsKML,并使用perl将其输入数据库,通过

如果我使用psql拉出数据,一切看起来都很好,但是如果我通过
DBIx::Class
拉出数据,所有utf-8字符看起来都被破坏了

在sqlite3中完成的完全相同的过程非常有效

我在客户端启用了
pg\u enable\u utf8

有人知道为什么会这样吗?

如果您使用的是
INSERT
,则上述警告可能与您的流程有关


另外,可能让脚本执行
将CLIENT_编码设置为“value”将有帮助,其中value=UTF8。有关更多信息,请参阅。

您是如何通过
DBIx::Class
拉取它的,有什么代码可以演示吗?请显示您的代码。另外,Perl解释器运行在什么语言环境中?你读过了吗?原来是用
binmode(STDOUT,“:utf8”)解决的打印到标准输出并在Catalyst上设置
编码=>“UTF-8”
时。我想知道为什么sqlite不需要这样做。我猜你没有正确设置sqlite,所以来自sqlite的UTF-8数据没有被解码,所以当你将它打印到STDOUT时,它仍然被编码为UTF-8。