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

标签 c string utf-8 character-encoding

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

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

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

提前致谢。

最佳答案

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

关于c - 如何知道utf8字符串中的字符数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7108241/

相关文章:

python - 使用变量名称作为字典理解中的键

UTF-8 字符未在控制台中正确显示

C#:来自带有 MySQL 的字符串的 Unicode

c - 在 C 中打开文件,但我不知道如何获取文件的宽度和高度

c - 为什么这个程序不反转字符串?

C# 转换与解析

c++ - 从扩展 ascii 到 utf 8 的转换

c++ - FSEvents C++ 示例

c - atan2 用于任意相移的两个正弦波?

没有反转/反转的字典顺序字符串排列