lefb的问题

joking520 2008-03-09 07:18:10
为什么first=leftb("this is a text",4)返回的是 th
又为什么first=lenb("this is a text")返回的是 28
而又为什么first=len("this is a text")返回的是 14

注:我看了MSDN上好多len与lenb的故事,似乎明白又似乎不明白!!!
最不明白的还是leftb怎么返回th

是不是都是返回Byte的呀。。要是这样,那上面是不是一个英文字母就占2BYTE?
这样理解貌似可以验证结果,但是不清楚为什么!

请教高人
...全文
21 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
joking520 2008-03-09
晕!!一天后才可以加分。。怎么回事情!!
回复
joking520 2008-03-09
明白,谢谢。。。结贴!!!
回复
qiu5208 2008-03-09
一个字符=两个字节(byte)
回复
len是处理unicode的,lenb是处理ascii的。

vb中默认的是unicode的,更深的层次俺也说不清楚,所以leftb(..., 4 )返回th

回复
jadeluo 2008-03-09
VB中的字符中是UniCode编码的, 每个字符(英文字母, 汉字, 其他字符)都是占两个字节的。

下面的写法,会符合楼主的想法:
first = StrConv(LeftB(StrConv("这是this is a text", vbFromUnicode), 5), vbUnicode)
first = LenB(StrConv("this is a text", vbFromUnicode))
回复
相关推荐
发帖
VB基础类
创建于2007-09-28

7489

社区成员

VB 基础类
申请成为版主
帖子事件
创建了帖子
2008-03-09 07:18
社区公告
暂无公告