必须先知道这个字串的编码。如果是ascii,gb2312,big5,gbk或utf8的,这些编码都能保证在字串中间不出现'\0',因此,可以用strlen来计算其字节大小。但是unicode的就不行,它对英文字母的编码,会在高位加0。因此,用strlen来计算,遇到英文字母的高位的0,则判断结束,从而导致计算的长度小于真实长度。对unicode的字串,需要用wcslen()来计算其长度,而其字节长度等于wcslen()*2。
在不知道是否unicode的情况下,没有通吃的函数。例如,一个简单的内容:char s[] = {65,0,0,0};我们也无从判断字串的字节大小。unicode则是2字节(包括65后面的0),而其他则是1字节。
“strlen是错误的,不能用哈”为什么??如果你的字符串有中文就不能用了