internal static unsafe void CharToUTF8( ref char * pSrc, char * pSrcEnd, ref byte * pDst ) {
int ch = *pSrc;
if ( ch <= 0x7F ) {
*pDst = (byte)ch;
pDst++;
pSrc++;
}
else if ( ch >= SurHighStart && ch <= SurLowEnd ) {
pDst = EncodeSurrogate( pSrc, pSrcEnd, pDst );
pSrc += 2;
}
else {
pDst = EncodeMultibyteUTF8( ch, pDst );
pSrc++;
}
}