I will try to rip some code to demonstrate the problem.
One important note: There is no problem on Windows ActivePerl. It only happens on Linux.
Here is how I handle input data:
################################### package main; ################################### sub decode_string { my $string = shift; Encode::_utf8_off($string); my $encoding = Encode::Guess->guess($string); if (!ref($encoding)) { $string = Encode::decode_utf8($string, 1); }else{ $string = $encoding->decode($string) if $encoding; } return $string; } CGI::param($_, map { decode_string($_) } (CGI::param($_)) ) foreach CG +I::param; ##################################### package My::DBI; ##################################### sub fixutfflag { my $self = shift; do { Encode::_utf8_on($_); } foreach @{$self}{$self->columns}; } ##################################### package My::DBI::Class; ##################################### __PACKAGE__->add_trigger( select => sub { my $self = shift; $self->fixutfflag; });
In reply to Re^2: UTF-8 problem, some chars appear as \x..
by zanzibar
in thread UTF-8 problem, some chars appear as \x..
by zanzibar
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |