关于VB中的lenB函数

来源:百度知道 编辑:UC知道 时间:2024/06/18 13:22:46
在立即窗口中输入print lenB ("BASIC程序设计"),结果显示的是18,但是书上说的结果应该是13,VB早期版本一个中文不是相当于2个英文字符吗,为什么结果显示的是18而不是13?
谢谢!

LenB 函数将字符串当作一组字节而不是一组字符。当字符串代表二进制数据时应当使用此函数。如果需要返回字符总数而非字节总数,可使用 Len 函数。
语法:
result = LenB( 字符串 )
result = 字符串变量.LenB( )。
参数:
字符串
String 数据类型
任意合法的字符串表达式。
返回值
结果:
Integer 数据类型
字符串的字节总数。
说明:
LenB 函数将字符串当作一组字节而不是一组字符。当字符串代表二进制数据时应当使用此函数。如果需要返回字符总数而非字节总数,可使用 Len 函数。
范例:
本例使用Len 函数返回字符串的总字符数。
Dim n As Integer
n=LenB("Hello world")
print n ‘返回22,VB使用unicode,所以因为也是2字节。

len()函数返回的是字符的“个数”
LenB 函数作用于字符串中的“字节数据”,如同在双字节字符集(DBCS)语言中一样。所以 LenB 返回的是用于代表字符串的字节数,而不是返回字符串中字符的数量。如为用户自定义类型,LenB 返回在内存中的大小,包括元素之间的衬垫。

网上有一句话:“VB自从32位版本以后,不管中英文字,均以2 bytes来储存,这与中文Win95的汉字内核有关”
LenB就是LenByte 获得Byte长度 不是字的数量
所以……貌似什么都是2Byte……
我也不知道……书上可能是错误的

LenB 返回的是用于代表字符串的字节数,而不是返回字符串中字符的数量。如为用户自定义类型,LenB 返回在内存中的大小,包括元素之间的衬垫。

呵呵。如果是 Unicond,每个字符都是 2 个字节,AscII 的话只有汉字是 2 个字节,从 VB6 就支持 Uniconde 了,9 个字正好 18 个字节!