Thank you for all the good information, sUTF32ToUTF8 function

From: Peter_Constable@sil.org
Date: Thu Nov 08 2001 - 23:50:16 EST


Anybody willing to check this for me?

CString sUTF32ToUTF8( LONG lUTF32 )
     {
     CString sUTF8;
     if ( lUTF32 <= 0x007F )
          sUTF8 += (UCHAR)lUTF32;
     else if ( lUTF32 <= 0x07FF )
          {
          sUTF8 += (UCHAR)( lUTF32 / 64 + 192 );
          sUTF8 += (UCHAR)( lUTF32 % 64 + 128 );
          }
     else if ( lUTF32 <= 0xD7FF || ( 0xE000 <= lUTF32 && lUTF32 <= 0xFFFF
) )
          {
          sUTF8 += (UCHAR)( lUTF32 / 4096 + 224 );
          sUTF8 += (UCHAR)( ( lUTF32 % 4096 ) / 64 + 128 );
          sUTF8 += (UCHAR)( lUTF32 % 64 + 128 );
          }
     else
          {
          sUTF8 += (UCHAR)( lUTF32 / 262144 + 240 );
          sUTF8 += (UCHAR)( ( lUTF32 % 262144 ) / 4096 + 128 );
          sUTF8 += (UCHAR)( ( lUTF32 % 4096 ) / 64 + 128 );
          sUTF8 += (UCHAR)( lUTF32 % 64 + 128 );
          }
     return sUTF8;
     }

Peter



This archive was generated by hypermail 2.1.2 : Fri Nov 09 2001 - 00:53:18 EST