我需要确定以字节为单位的UTF-8字符串的长度。如何正确执行?据我所知,在UTF-8终端符号中有1个字节的大小。我可以使用strlen这个功能吗?以字节为单位的UTF-8字符串大小
3
A
回答
11
我可以使用strlen函数吗?
是,strlen
给你一个字节数第一'\0'
字符之前,所以
strlen(utf8) + 1
是字节的utf8
包括0终止的数量,因为没有比'\0'
包含其它字符UTF-8中的0字节。
当然,只有在utf8
实际上是UTF-8编码的情况下才有效,否则您需要先将其转换为UTF-8。
+0
@JoopEggen:不,Latin-1和高级控制字符在UTF-8中不是单字节。 UTF-8中只有**的单字节字符是ASCII。无论如何,编码与以字节为单位测量字符串的大小无关。 – 2013-05-02 16:05:08
+0
@R .. right;实际上我只想提到UTF-8的优点,即整个7位ASCII范围不会由于高位而在UTF-8多字节序列中错误地发现。 – 2013-05-02 20:46:42
2
是的,strlen()将简单地计数字节,直到它遇到NUL,这是0终止的UTF-8编码C字符串的正确终结符。
相关问题
- 1. 以字节为单位测量字符串的大小php
- 2. 枚举大小(以字节为单位)
- 3. 以字节为单位获取std :: string的字符串的大小
- 4. 获取HTTPRequest/HTTPResponse头字节大小(以字节为单位)
- 5. 将字节[]转换为UTF8字符串
- 6. 将字符串转换为utf8字节
- 7. 以字节为单位的字典大小
- 8. 如何计算以字节为单位的节点大小
- 9. 如何计算base64image字符串大小以MB为单位?
- 10. 以字节为单位的大小(以KB为单位)对于sql字段中的字段
- 11. 以字节为单位的RSA签名的大小是多少?
- 12. 以字节为单位给出的不准确的NSData大小
- 13. 以字节为单位的类的大小
- 14. 得到的NodeJS变量的大小以字节为单位
- 15. 流到UTF8字符串,没有字节[]
- 16. UTF8字节到字符串和Winsock GetStream
- 17. C++字符串长度以字节为单位
- 18. 以字节/兆字节为单位确定表或选定记录的大小
- 19. Range头是压缩或未压缩字节的大小(以字节为单位)?
- 20. 多字节的UTF8字符
- 21. 不同编译器的枚举大小(以字节为单位)
- 22. svn修订版的大小(以字节为单位)
- 23. Java:向量的大小(以字节为单位)
- 24. 获取文件的总大小以字节为单位
- 25. 原始响应的大小(以字节为单位)
- 26. 以字节为单位计算imagepickerdidFinishPickingMediaWithInfo中的视频大小
- 27. 计算HTTP请求发布的大小(以字节为单位)
- 28. C++获取EOL的大小(以字节为单位)
- 29. 以字节为单位的分组大小
- 30. Q中的表格大小(以字节为单位)
UTF-8没有定义字符串如何终止。使用空字符“'\ 0”来终止一个字符串是一个C约定。 – 2013-05-02 15:18:06
UTF-8的重点在于,您不必更改任何**字符串处理实践。只有解释字符串字符的代码才有可能需要改变,即使这样,通常只有当它对ASCII范围以外的字符应用特殊解释时才需要改变。诸如'strlen','strstr','strchr'(用于搜索单字节字符),'snprintf'等等都可以工作。 – 2013-05-02 16:07:13
感谢您的解释! – 2013-05-02 17:05:34