我需要确定以C为单位的UTF-8字符串的长度。如何正确执行?据我所知,在UTF-8终端符号有1字节大小。我可以使用 strlen 功能吗?
答案 0 :(得分:11)
我可以使用strlen函数吗?
是的,strlen
为您提供第一个'\0'
字符前的字节数,所以
strlen(utf8) + 1
是utf8
中包含0-terminator的字节数,因为'\0'
以外的字符不包含UTF-8中的0字节。
当然,仅当utf8
实际上是UTF-8编码时才有效,否则您需要先将其转换为UTF-8。
答案 1 :(得分:2)
是的,strlen()将直接计算字节,直到它遇到NUL,这是0终止的UTF-8编码的C字符串的正确终结符。