lois: url decoding (utf-8/16/32)

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.