C中的UTF8处理

lan*_*ng2 6 c unicode utf-8

我对UTF8有基本的了解:代码点具有可变长度,因此"字符"可以是8位,16位甚至更长.

我想知道的是,如果C语言中有一些示例代码,库等与UTF8字符串类似,就像CEg中的标准库那样告诉字符串的长度等等.

谢谢,

Mr *_*ter 1

处理 Unicode 的最重要的库是IBM 的 ICU

\x01但是,如果您需要做的只是确定 UTF-8 编码字符串中的代码点数量,请计算值介于和 之间\x7F或介于\xC2和 之间的字符数量\xFF

  • 实际上,`\xC2` 到 `\xF4` - Unicode 停止于 `U+10FFFF`。折扣连续字节可能更容易,并且您可以通过单个操作来完成此操作:`c & \xC0 != \x80`。 (2认同)