我目前正在制作韩语课程,该课程应翻译成中文。我发现奇怪的是,应用程序混合了UTF-8和UTF-16字符。
假设我们有一个字符串:
"게임을 정말로 종료하시겠습니까"
8C AC 84 C7 44 C7 20 00 15 C8 D0 B9 5C B8 20 00
85 C8 CC B8 58 D5 DC C2 A0 AC B5 C2 C8 B2 4C AE 00
但它存储为
B0 D4 C0 D3 C0 BB 20 C1 A4 B8 BB B7 CE 20 C1 BE
B7 E1 C7 CF BD C3 B0 DA BD C0 B4 CF B1 EE 3F 00
只是为了防止零。我想知道,如果它是某种加密,或者它只是编译器使用的常规方法来防止在字符串中间某处的字符串结尾?因为,最后的结果是我提到的第一个字符串。任何阅读都会受到高度赞赏。
答案 0 :(得分:1)
字符串必须是uft-8或utf-16(或其他一些编码)。如果将编码混合在一个字符串中则是错误的。然而,将字符串作为utf-8传递是很常见的,并且只在Windows函数需要时将它们转换为utf-16。有几个原因,Basile Starynkevitch提供了一个链接。
如果您需要例程来阅读UFT-8,我在这里有一些。
https://github.com/MalcolmMcLean/babyx/blob/master/src/common/BBX_Font.c