93typedef unsigned int UTF32;
94typedef unsigned short UTF16;
95typedef unsigned char UTF8;
96typedef unsigned char Boolean;
99#define UNI_REPLACEMENT_CHAR (UTF32)0x0000FFFD
100#define UNI_MAX_BMP (UTF32)0x0000FFFF
101#define UNI_MAX_UTF16 (UTF32)0x0010FFFF
102#define UNI_MAX_UTF32 (UTF32)0x7FFFFFFF
103#define UNI_MAX_LEGAL_UTF32 (UTF32)0x0010FFFF
112typedef enum { strictConversion = 0, lenientConversion } ConversionFlags;
119ConversionResult ConvertUTF8toUTF16(
const UTF8** sourceStart,
const UTF8* sourceEnd, UTF16** targetStart, UTF16* targetEnd, ConversionFlags flags);
121ConversionResult ConvertUTF16toUTF8(
const UTF16** sourceStart,
const UTF16* sourceEnd, UTF8** targetStart, UTF8* targetEnd, ConversionFlags flags);
123ConversionResult ConvertUTF8toUTF32(
const UTF8** sourceStart,
const UTF8* sourceEnd, UTF32** targetStart, UTF32* targetEnd, ConversionFlags flags);
125ConversionResult ConvertUTF32toUTF8(
const UTF32** sourceStart,
const UTF32* sourceEnd, UTF8** targetStart, UTF8* targetEnd, ConversionFlags flags);
127ConversionResult ConvertUTF16toUTF32(
const UTF16** sourceStart,
const UTF16* sourceEnd, UTF32** targetStart, UTF32* targetEnd, ConversionFlags flags);
129ConversionResult ConvertUTF32toUTF16(
const UTF32** sourceStart,
const UTF32* sourceEnd, UTF16** targetStart, UTF16* targetEnd, ConversionFlags flags);
131Boolean isLegalUTF8Sequence(
const UTF8* source,
const UTF8* sourceEnd);