UTF-8版的strlen
from :
http://wangcong.org/blog/archives/357
在这里看到这么一个计算UTF-8字符串长度的程序:
C:
-
int my_strlen_utf8_c(char *s) {
-
int i = 0, j = 0;
-
while (s[i]) {
-
if ((s[i] & 0xc0) != 0x80) j++;
-
i++;
-
}
-
return j;
-
}
不解。查wikipedia,得一表:
00000000 00000000 0zzzzzzz 0zzzzzzz
00000000 00000yyy yyzzzzzz 110yyyyy 10zzzzzz
00000000 xxxxyyyy yyzzzzzz 1110xxxx 10yyyyyy 10zzzzzz
000wwwxx xxxxyyyy yyzzzzzz 11110www 10xxxxxx 10yyyyyy 10zzzzzz
顿悟。
浙公网安备 33010602011771号