c++ - UTF8 字符是否有分隔符字节?

标签 c++ unicode utf-8

如果我有一个包含 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/

相关文章:

java - 在Java中写入具有特定编码的文件

c++ - 为什么 g++ 声明某些 valarray<double> o 有 "no matching function for call cbegin(o)"?

c++ - 通过套接字发送二进制文件。文本文件有效,没有别的吗?

c++ - 指向 C++ 对象的双指针

java - 获取字符的unicode值

java - 为 clojure 源文件启用 UTF-8 编码

php - 使用 PHP 以非 ASCII 字符输出日期

C++ 十六进制乘法段错误

Perl "-C"标志问题

python - 从同时包含印地语和英语的文件中仅提取印地语文本