UTF-8字符串大小(以字节为单位)

时间:2013-05-02 14:31:39

标签: c utf-8

我需要确定以C为单位的UTF-8字符串的长度。如何正确执行?据我所知,在UTF-8终端符号有1字节大小。我可以使用 strlen 功能吗?

2 个答案:

答案 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字符串的正确终结符。