我需要确定C语言中UTF-8字符串的字节数。如何正确地执行?据我所知,在UTF-8中,终端符号大小为1字节。我能使用strlen函数吗?
我可以使用strlen函数吗?
是的,strlen
函数可返回第一个'\0'
字符前的字节数量,因此
strlen(utf8) + 1
这是utf8
中字节数量,包括0终止符,因为在UTF-8中除了'\0'
字符外没有其他字符包含0字节。
当然,这仅适用于utf8
实际上是UTF-8编码的情况,否则您需要先将其转换为UTF-8。
是的,strlen()函数将简单地计算字节直到遇到NUL字符,这是0结尾的UTF-8编码C字符串的正确终止符。
'\0'
来终止字符串是C语言的惯例。 - Keith Thompsonstrlen
、strstr
、strchr
(用于搜索单字节字符)、snprintf
等等这些函数都能正常工作。 - R.. GitHub STOP HELPING ICE