3dword
UTF8ToUTF32(
const byte *UTF8Character,
byte *BytesPerChar)
9 if(BytesPerChar) *BytesPerChar = 1;
17 c1 = UTF8Character[0];
18 if((c1 & 0x80) == 0x00)
25 c2 = UTF8Character[1];
26 if(((c1 & 0xe0) == 0xc0) &&
27 ((c2 & 0xc0) == 0x80))
29 if(BytesPerChar) *BytesPerChar = 2;
32 return ((c1 & 0x1f) << 6) | (c2 & 0x3f);
36 c3 = UTF8Character[2];
37 if(((c1 & 0xf0) == 0xe0) &&
38 ((c2 & 0xc0) == 0x80) &&
39 ((c3 & 0xc0) == 0x80))
41 if(BytesPerChar) *BytesPerChar = 3;
44 return ((c1 & 0x0f) << 12) | ((c2 & 0x3f) << 6) | (c3 & 0x3f);
48 c4 = UTF8Character[3];
49 if(((c1 & 0xf8) == 0xf0) &&
50 ((c2 & 0xc0) == 0x80) &&
51 ((c3 & 0xc0) == 0x80) &&
52 ((c4 & 0xc0) == 0x80))
54 if(BytesPerChar) *BytesPerChar = 4;
57 return ((c1 & 0x07) << 18) | ((c2 & 0x3f) << 12) | ((c3 & 0x3f) << 6) | (c4 & 0x3f);
dword UTF8ToUTF32(const byte *UTF8Character, byte *BytesPerChar)