Hi!

For those of you who _are_ programmers (or at least
know a little C), there is a somewhat easier formaula
to convert between utf16 and utf32 for plane1 and above
(the offset 0x10000 in the high surraogate can be fix
shifted and included in the constant term):

utf16high = 0xD7C0 + (utf32 >> 10);
utf16low  = 0xDC00 + (utf32 & 1023);

this is very easy to invert:

utf32 = ((utf16high - 0xD7C0) <<10) + (utf16low & 1023);

Here utf16high and utf16low are 16bit-surrogates, and
utf32 is of course a 32bit-value.
The bitshift operators >> and << can be replaced
by ordinary division or multiplication by twopowers and
the bitwise-and & is equivalent to a modulo-operation.
But that is slower (relevant only for realy high-speed
converters ;-).

Best regards.
-- 
Dominikus Scherkl
[EMAIL PROTECTED]

Reply via email to