这几天在帮朋友做一个站,在处理字符串截取时,为了整齐,要判断汉字与英文,因为他们占用的宽度不一样。
为了省事,直接用了以前积累的一个小函数来处理,结果,不起作用,后来测试了一下,才发现,原来是因为编码的原因,UTF-8下和GB2312下,Asc的值不一样,前者汉字好像都是0,后者则是大于255。
新代码如下:[code]function GetLeft(str,strlen)
Dim l,t,c,i
l=len(str)
t=0
For i=1 To l
c=Abs(Asc(Mid(str,i,1)))': Response.write c&”,”这个是我用来判断取到的值,才发现问题
If c=0 Then'汉字GB2312下是>255,UTF8下是0
t=t+2
Else
t=t+1
End If
If t>=strlen Then
GetLeft=left(str,i)&”…”
Exit for
Else
GetLeft=str
End If
Next
end function
[/code]
奇怪的是,今天换了个服务器空间后,汉字取得的ASC值都是1了。又要改代码了。