请问各位大侠在数组中定义了一个1024的数组,我输入了一串字符,要计算这串字符的字节数大小,该怎么做

职业培训 培训职业 2024-12-30
必须先知道这个字串的编码。如果是ascii,gb2312,big5,gbk或utf8的,这些编码都能保证在字串中间不出现'\0',因此,可以用strlen来计算其字节大小。但是unicode的就不行,它对英文字母的编码,会在高位加0。因此,用strlen来计算,遇到英文字母的高位的0,则判断结

必须先知道这个字串的编码。如果是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字节。

标签

版权声明:本文由哟品培原创或收集发布,如需转载请注明出处。

本文链接:http://www.yopinpei.com/20241230/2/996777

猜你喜欢
其他标签