ASP中UTF-8编码下字符串截取和获取长度函数
一直以来使用一段不知道哪天收集来的字符串长度处理函数,PJ好像也是,在UTF-8编码下,就不能正确判断字符串的长度了~
在做对白网的时候发现的这个问题,从网上搜了一下,已经有人遇到过了,并写出了函数,我直接拿过来用了
'************************************
'截取文字长度函数,支持UTF-8
'输入参数:
' 1、文字内容
' 2、文字最大长度
'************************************
Public Function Cut_Title(Title,TLen)
Dim k,i,d,c
Dim iStr
Dim ForTotal
If CDbl(TLen) > 0 Then
k=0
d=StrLen(Title)
iStr=""
ForTotal = Len(Title)
For i=1 To ForTotal
c=Abs(AscW(Mid(Title,i,1)))
If c>255 Then
k=k+2
Else
k=k+1
End If
iStr=iStr&Mid(Title,i,1)
If CLng(k)>CLng(TLen) Then
iStr=iStr&".."
Exit For
End If
Next
Cut_Title=iStr
Else
Cut_Title=""
End If
End Function
'*******************************
'检测文字长度函数,支持UTF-8
'输入参数:
' 1、文字内容
'*******************************
Public Function StrLen(strText)
Dim k,i,c
Dim ForTotal
k=0
ForTotal = Len(strText)
For i=1 To ForTotal
c=Abs(AscW(Mid(strText,i,1)))
If c>255 Then
k=k+2
Else
k=k+1
End If
Next
StrLen=k
End Function
在对白网上测试,无错:)