从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。
我搜索了很多但到目前为止还没有解决方案。
答案 0 :(得分:1)
这是警告而不是错误。查看perldiag给出了解释。
%s中的广角色
(S utf8)Perl在没有期待时遇到一个宽字符(> 255) 一。默认情况下,此警告用于I / O(如打印)。最简单的 安静此警告的方法只是将:utf8图层添加到 输出,例如binmode STDOUT,':utf8' 。另一种关闭方式 警告是不添加任何警告' utf8&#39 ;;但那往往更接近 作弊。一般来说,你应该明确标记 带编码的文件句柄,请参阅open和binmode。
你有utf8编码的字符,其中Perl期望看到字节。在达到这一点之前,您可能需要encode()
数据。