Postgres 9.4beta1中otrs中子例程条目中的宽字符

时间:2014-12-16 11:06:07

标签: perl otrs postgresql-9.4

从Postgres 9.1.2升级到Postgres 9.4beta1后,OTRS 3.3.5停止使用http-error.log中发现的Perl错误,在关闭故障单时引发。错误是:

  

[/] / Kernel / System.DB.pm第499行的子程序条目中的宽字符

第499行是:

if ( !$Self->{dbh}->do( $Param{SQL}, undef, @Array ) ) {

执行查询时似乎Perl脚本失败。

我的Perl版本是v5.16.3。

我搜索了很多但到目前为止还没有解决方案。

1 个答案:

答案 0 :(得分:1)

这是警告而不是错误。查看perldiag给出了解释。

  

%s中的广角色

     

(S utf8)Perl在没有期待时遇到一个宽字符(> 255)   一。默认情况下,此警告用于I / O(如打印)。最简单的   安静此警告的方法只是将:utf8图层添加到   输出,例如binmode STDOUT,':utf8' 。另一种关闭方式   警告是不添加任何警告' utf8&#39 ;;但那往往更接近   作弊。一般来说,你应该明确标记   带编码的文件句柄,请参阅open和binmode。

你有utf8编码的字符,其中Perl期望看到字节。在达到这一点之前,您可能需要encode()数据。