ASP中UTF-8编码下字符串截取和获取长度函数

DATE: 2016-11-10 / VIEWS: 786

一直以来使用一段不知道哪天收集来的字符串长度处理函数,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

在对白网上测试,无错:)