url decoding (utf-8/16/32)
lois
- perl
hi,
ich hab zwar gestern schon das problem gepostet, aber ein bischen ungenau formuliert.
mein ploblem ist, wie mach ich in perl aus einem utf-8 code einen utf-32 code, weil den kann ich ja dann in der html verwenden
z.B %C3%B6(utf-8) -> %0xXXXX(utf-16/32) -> m&#yyyy;rchenhaft
nun hab ich folgendes in der perldoc gefunden:
http://www.perldoc.com/perl5.8.0/pod/perlunicode.html#Unicode-Encodings
Here is a formula to ensurrogate a Unicode character \x{10000} and above;
$hi = ($uni - 0x10000) / 0x400 + 0xD800;
$lo = ($uni - 0x10000) % 0x400 + 0xDC00;
And to desurrogate;
$uni = 0x10000 + ($hi - 0xD800) * 0x400 + ($lo - 0xDC00);*
wenn ich aber die formel * verwende, dan bekomm ich für z.b. ä :
$uni = 0x10000 + (0xC3 - 0xD800) * 0x400 + ($lo - 0xDC00);
das ergibt bei mir aber -56613888, was ja offensichtlich nicht stimmt.
vielleicht kann mir da wer helfen.
lg, lois.