Perl 什么';Postgresql中的uft-8字符串发生了什么?
在我的过程中,我解析了GoogleMapsKML,并使用perl将其输入数据库,通过 如果我使用psql拉出数据,一切看起来都很好,但是如果我通过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。有关
DBIx::Class
拉出数据,所有utf-8字符看起来都被破坏了
在sqlite3中完成的完全相同的过程非常有效
我在客户端启用了pg\u enable\u utf8
有人知道为什么会这样吗?
如果您使用的是INSERT
,则上述警告可能与您的流程有关
另外,可能让脚本执行
将CLIENT_编码设置为“value”服务器上的code>将有帮助,其中value=UTF8。有关更多信息,请参阅。您是如何通过DBIx::Class
拉取它的,有什么代码可以演示吗?请显示您的代码。另外,Perl解释器运行在什么语言环境中?你读过了吗?原来是用binmode(STDOUT,“:utf8”)解决的代码>打印到标准输出并在Catalyst上设置编码=>“UTF-8”
时。我想知道为什么sqlite不需要这样做。我猜你没有正确设置sqlite,所以来自sqlite的UTF-8数据没有被解码,所以当你将它打印到STDOUT时,它仍然被编码为UTF-8。