On 9/12/06, Vladimir S. Tikhonjuk <[EMAIL PROTECTED]> wrote:
You can try the following:
# For each value ...
# Decodes %XX characters
$val =~ s/%([0-9a-fA-F][0-9a-fA-F])/chr(hex($val))/eg;
# Decodes charset
eval {$newval=Encode::decode('utf8',$val,1)};
$newval=Encode::decode('KOI8-R',$val,1) if ($@);
We found problems with IE 6.0 & ajax request: sometimes it doesn't respect page encoding. All our pages are UTF8, but some IE request use iso-8859-1. We add the 'eval' to solve this.
I am a perl utf8 newbie, so it may be some misleading here.
Hi all!
I have _javascript_ function, which constructs html query like this:
var url ="">'http://192.168.101.199/personal_account_search_ajax?key='+escape(key)+'&type='+type ;
where variable 'key' is a value of form's line edit. When I enter there
non ASCII symbol, I get
url like this:
http://192.168.101.199/personal_account_search_ajax?key=%u043E&type=name .
Here is my personal_account_search_ajax handler:
package Promtelecom::PersonalAccountSearchAjax;
use strict;
use Apache2::Const -compile => qw( OK );
sub handler {
my $r = shift;
my $req = Apache2::Request->new( $r );
$req->content_type('text/xml; charset=KOI8-R');
my $search_key = $req->param('key');
my $search_type = $req->param('type');
my $archive_search = $req->param('archive_search');
return Apache2::Const::OK;
}
As I understand, I have to unescape URI here to get right value of
$req->param('key').
How to do it ?
You can try the following:
# For each value ...
# Decodes %XX characters
$val =~ s/%([0-9a-fA-F][0-9a-fA-F])/chr(hex($val))/eg;
# Decodes charset
eval {$newval=Encode::decode('utf8',$val,1)};
$newval=Encode::decode('KOI8-R',$val,1) if ($@);
We found problems with IE 6.0 & ajax request: sometimes it doesn't respect page encoding. All our pages are UTF8, but some IE request use iso-8859-1. We add the 'eval' to solve this.
I am a perl utf8 newbie, so it may be some misleading here.
--
http://confronte.com
Compará y comprá mejor