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?
这样理解貌似可以验证结果,但是不清楚为什么!

请教高人
...全文
82 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
joking520 2008-03-09
  • 打赏
  • 举报
回复
晕!!一天后才可以加分。。怎么回事情!!
joking520 2008-03-09
  • 打赏
  • 举报
回复
明白,谢谢。。。结贴!!!
qiu5208 2008-03-09
  • 打赏
  • 举报
回复
一个字符=两个字节(byte)
用户 昵称 2008-03-09
  • 打赏
  • 举报
回复
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))

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧