C将UTF-8字符串迭代或分割成符号数组?

C将UTF-8字符串迭代或分割成符号数组?,第1张

概述搜索与UTF-8字符串或将其分割成UTF-8符号数组的平台和第三方库独立的方式. 请张贴一个代码段. 解决了: C++ iterate or split UTF-8 string into array of symbols? 如果我明白了,听起来你想要找到每个UTF-8字符的开始.如果是这样,那么解析它们是相当简单的(解释它们是另一回事).但是,涉及到的字节数有多少是由 RFC定义的: Char. 搜索与UTF-8字符串或将其分割成UTF-8符号数组的平台和第三方库独立的方式.

请张贴一个代码段.

解决了:
C++ iterate or split UTF-8 string into array of symbols?

@H_301_7@解决方法 如果我明白了,听起来你想要找到每个UTF-8字符的开始.如果是这样,那么解析它们是相当简单的(解释它们是另一回事).但是,涉及到的字节数有多少是由 RFC定义的:
Char. number range  |        UTF-8 octet sequence   (hexadecimal)    |              (binary)--------------------+---------------------------------------------0000 0000-0000 007F | 0xxxxxxx0000 0080-0000 07FF | 110xxxxx 10xxxxxx0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

例如,如果lb具有UTF-8字符的第一个八位字节,我认为以下将确定涉及的八位字节数.

unsigned char lb;if (( lb & 0x80 ) == 0 )          // lead bit is zero,must be a single ascii   printf( "1 octet\n" );else if (( lb & 0xE0 ) == 0xC0 )  // 110x xxxx   printf( "2 octets\n" );else if (( lb & 0xF0 ) == 0xE0 ) // 1110 xxxx   printf( "3 octets\n" );else if (( lb & 0xF8 ) == 0xF0 ) // 1111 0xxx   printf( "4 octets\n" );else   printf( "Unrecognized lead byte (%02x)\n",lb );

最终,尽管如此,如果在另一篇文章中建议您使用现有的图书馆,您将会更加完美.上面的代码可以根据八位字节对字符进行分类,但是一旦完成,它们不会帮助“做任何事情”.

@H_301_7@ @H_301_7@ 总结

以上是内存溢出为你收集整理的C将UTF-8字符串迭代或分割成符号数组?全部内容,希望文章能够帮你解决C将UTF-8字符串迭代或分割成符号数组?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1251280.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存