如何知道utf8字符串中的字符数

akm*_*mal 4 c string utf-8 character-encoding

我想知道有没有一种简单的方法来确定UTF8字符串中的字符数。例如,在 Windows 中,它可以通过以下方式完成:

  1. UTF8字符串转换为wchar_t字符串
  2. 使用wcslen函数并得到结果

但我需要更简单和跨平台的解决方案。

提前致谢。

bor*_*ble 5

UTF-8 字符是单个字节,其中最左边的位是 a0或多个字节,其中第一个字节有最左边的位1..10...(左边的 1 数为 2 或更多),然后是形式的连续字节10...(即左侧的单个 1)。假设您的字符串格式正确,您可以遍历所有字节并在每次看到不符合格式的字节时增加“字符数” 10...- 即仅计算所有 UTF-8 字符中的第一个字节。