in reply to Re^2: javascript encodeURI() -> perl uri_unescape_utf8() ?
in thread javascript encodeURI() -> perl uri_unescape_utf8() ?
Naturally, we'd love to have an elegant and concise way to interpret this correctly as utf8 text, but I don't know enough about the URI modules to provide much guidance in that direction.
So instead, I'll offer an ad-hoc (but still somewhat concise) work-around -- it's a kluge, but it should work until you or some other monk can find the needed gems in the appropriate module(s):
The "binmode STDOUT" thing could be taken out if you add a "-CO" flag on the shebang line, I believe -- that "perlrun" option does the same thing as 'binmode STDOUT, ":utf8";'.use Encode; # ... get the uri string into $_ by whatever means ... $_ = "a%20%C3%A5%20%2F"; # first, let's turn the uri encoded string (with "%HH" for some bytes) + into binary: s/\%([0-9a-f]{2})/chr(hex($1))/egi; # then, since this produces a utf-8 byte sequence, let's "decode" that + into utf-8 $_ = decode( 'utf8', $_ ); # $_ now has utf8 flag set, and contains the string with expected unic +ode characters binmode STDOUT, ":utf8"; print;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: javascript encodeURI() -> perl uri_unescape_utf8() ?
by blahblahblah (Priest) on Dec 15, 2004 at 03:26 UTC | |
|
Re^4: javascript encodeURI() -> perl uri_unescape_utf8() ?
by nkropols (Sexton) on Dec 15, 2004 at 14:31 UTC | |
by graff (Chancellor) on Dec 15, 2004 at 15:32 UTC |