【发布时间】:2013-04-26 18:51:24
【问题描述】:
我需要确定 C 中 UTF-8 字符串的长度(以字节为单位)。如何正确执行?据我所知,在 UTF-8 中,终端符号的大小为 1 字节。我可以为此使用 strlen 函数吗?
【问题讨论】:
-
UTF-8 没有定义字符串的终止方式。使用空字符
'\0'终止字符串是 C 约定。 -
UTF-8 的全部意义在于您不必更改任何字符串处理实践。只有解释字符串字符的代码才可能需要更改,即使这样,通常也只有当它对 ASCII 范围之外的字符应用特殊解释时。
strlen、strstr、strchr(用于搜索单字节字符)、snprintf等都可以。 -
感谢您的解释!