85 |
*buf++ = 0x80 | (*string & 0x3F); |
*buf++ = 0x80 | (*string & 0x3F); |
86 |
size -= 2; |
size -= 2; |
87 |
} |
} |
88 |
else if (*string < 0x10000) |
else if ((*string < 0xD800) || (*string > 0xDFFF)) |
89 |
{ |
{ |
90 |
if (size < 3) |
if (size < 3) |
91 |
break; |
break; |
93 |
*buf++ = 0x80 | (*string >> 6 & 0x3F); |
*buf++ = 0x80 | (*string >> 6 & 0x3F); |
94 |
*buf++ = 0x80 | (*string & 0x3F); |
*buf++ = 0x80 | (*string & 0x3F); |
95 |
size -= 2; |
size -= 2; |
|
} |
|
|
else if (*string < 0x200000) |
|
|
{ |
|
|
if (size < 4) |
|
|
break; |
|
|
*buf++ = 0xF0 | (*string >> 18); |
|
|
*buf++ = 0x80 | (*string >> 12 & 0x3F); |
|
|
*buf++ = 0x80 | (*string >> 6 & 0x3F); |
|
|
*buf++ = 0x80 | (*string & 0x3F); |
|
|
size -= 2; |
|
96 |
} |
} |
97 |
|
|
98 |
string++; |
string++; |