我遇到一个Len函数的问题,求教各位!

13901081291 2004-01-04 10:06:09
我用Len函数求一个字符串长度,遇到一个很怪的问题。

如果变量中全是汉字的话,得到的是汉字个数。而不是字节数。
如果使用LenB,得到的是字节数,但如果内容是字符和汉字混合就乱了。
如:“3012-029312B好得”
用Len得到的长度是14?
用LenB得到的长度是28个?

正常的应该是16,这是为什么?
...全文
54 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
13901081291 2004-01-04
  • 打赏
  • 举报
回复
谢谢nbchp(生命过客),我用的方法和你一样,我写了个函数
13901081291 2004-01-04
  • 打赏
  • 举报
回复
谢谢 ShiningstarHu(Shining_star) ,我已经找到计算一个字符串(包括汉字、字符)的方法。
nbchp 2004-01-04
  • 打赏
  • 举报
回复
是VB的问题的引起的,但是我们可以利用汉字的ASC码小于0的特征来做一定的调整。

'lenTotal = 0
'for i=1 to Len("3012-029312B好得")
'strWord = mid("3012-029312B好得", i, 1)
'if asc(strWord) < 0 or asc(strWord) > 127 then
'lenTotal = lenTotal + 2
'else
'lenTotal = lenTotal + 1
'end if
'next
'response.write LenTotal

PS:
遇到ASC码大于127或者小于0,肯定不是英文字了,因此长度+2,否则就+1。
ShiningstarHu 2004-01-04
  • 打赏
  • 举报
回复
这个是因为VB内部用的是unicode问题所造成的。

以前有人问过,你找找老帖子吧!!
luluso 2004-01-04
  • 打赏
  • 举报
回复
14*2=28
13901081291 2004-01-04
  • 打赏
  • 举报
回复
我知道,LenB返回的是代表字符串的字节数,为什么字符也占两个字节,好象应该是一个字节才对。
luluso 2004-01-04
  • 打赏
  • 举报
回复
LenB 不是返回字符串中的字符数,而是返回用于代表字符串的字节数。

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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