X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/kivitendo-erp.git/blobdiff_plain/f5bc233522743646b118d0756b0041b16418fbdf..6f266e929ff3eaefc84c34b46fa452c50eecbcf4:/SL/FCGIFixes.pm diff --git a/SL/FCGIFixes.pm b/SL/FCGIFixes.pm index 2bd312c9e..ea31ccf56 100644 --- a/SL/FCGIFixes.pm +++ b/SL/FCGIFixes.pm @@ -4,12 +4,13 @@ use strict; use Encode; use FCGI; +use version; # FCGI does not use Perl's I/O layer. Therefore it does not honor # setting STDOUT to ":utf8" with "binmode". Also FCGI starting with # 0.69 implements proper handling for UTF-8 flagged strings -- namely # by downgrading them into bytes. The combination of the two causes -# Lx-Office's way of handling strings to go belly up (storing +# kivitendo's way of handling strings to go belly up (storing # everything in Perl's internal encoding and using Perl's I/O layer # for automatic conversion on output). # @@ -23,7 +24,8 @@ use FCGI; # that current I/O operations should be raw. sub fix_print_and_internal_encoding_after_0_68 { - return if version->parse($FCGI::VERSION) <= version->parse("0.68"); + return if version->new("$FCGI::VERSION")->numify <= version->new("0.68")->numify; + return if lc($::lx_office_conf{system}->{dbcharset}) !~ m/^(?:utf-?8|unicode)$/; my $encoder = Encode::find_encoding('UTF-8'); my $original_fcgi_print = \&FCGI::Stream::PRINT;