如果我有一个包含 UTF8 内容的字节数组,我将如何解析它?是否有分隔符字节,我可以将其拆分以获得每个字符?
最佳答案
看看这里...
http://en.wikipedia.org/wiki/UTF-8
如果您想要识别字符之间的边界,您需要的是“描述”中的表格。
获得高位零的唯一方法是使用单个字节编码的 ASCII 子集 0..127。所有非 ASCII 代码点都从第二个字节开始,最高两位为“10”。代码点的前导字节从来没有 - 它的高位表示字节数,但有一些冗余 - 你同样可以观察下一个没有“10”的字节来指示下一个代码点。
0xxxxxxx : ASCII
10xxxxxx : 2nd, 3rd or 4th byte of code
11xxxxxx : 1st byte of code, further high bits indicating number of bytes
unicode 中的代码点不一定与字符相同。例如,有修饰符代码点(例如重音符号)。
关于c++ - UTF8 字符是否有分隔符字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2322402/