Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要确定 C 中 UTF-8 字符串的长度(以字节为单位)。如何正确执行?据我所知,在 UTF-8 中,终端符号的大小为 1 字节。我可以为此使用strlen函数吗?
我可以为此使用 strlen 函数吗?
是的,strlen给你第一个'\0'字符之前的字节数,所以
strlen
'\0'
strlen(utf8) + 1
是utf8包含 0 终止符的字节数,因为'\0'在 UTF-8 中除了包含 0 字节之外没有其他字符。
utf8
当然,这只有在utf8实际上是 UTF-8 编码时才有效,否则您需要先将其转换为 UTF-8。
是的,strlen() 将简单地计算字节直到它遇到 NUL,它是 0 终止的 UTF-8 编码的 C 字符串的正确终止符。