| 424 | } |
| 425 | |
| 426 | static void utf16_encode(char32_t pt, std::u16string & out) { |
| 427 | if (pt < 0x10000) { |
| 428 | out += static_cast<char16_t>(pt); |
| 429 | } else if (pt < 0x110000) { |
| 430 | out += { static_cast<char16_t>(((pt - 0x10000) >> 10) + 0xD800), |
| 431 | static_cast<char16_t>((pt & 0x3FF) + 0xDC00) }; |
| 432 | } else { |
| 433 | out += 0xFFFD; |
| 434 | } |
| 435 | } |
| 436 | |
| 437 | // 替代StringToJavaString函数,解决jni里string乱码的问题 |
| 438 | jstring jniStringFromUTF8(JNIEnv * env, const std::string & str) { |