ASP 求字符串长度。汉字算两个字符,英文算一个字符。

来源:百度知道 编辑:UC知道 时间:2024/05/03 08:22:00
For i = 1 To l
c = Asc(Mid(str, i, 1))
If c < 0 Then c = c + 65536 //??这行如何理解??
If c > 255 Then
t = t + 1
End If
Next
找到答案
Function strLength(str)
If (len("飞鸟")=2) then
Dim l,t,c,i
l=Len(str)
t=l
For i=1 To l
c=asc(mid(str,i,1))
If c<0 Then
c=c+65536
End If
' asc对中文字符求出来的值可能为负数,
' 加上65536就可求出它的无符号数值
' -1在机器内是用补码表示的0xffff,
' 其无符号值为65535,65535=-1+65536
' 其他负数依次类推。
If c>255 Then
t=t+1
End If
Next
strLength=t
Else
strLength=len(str)
End If
End Function

asp 有直接函数len(str)
返回str字符长度,汉字为2

If c < 0 Then c = c + 65536 我想应该是对汉字的ascii的操作.
我不知道asc()返回什么结果 你查查 应该和ascii有关

函数len(str)