(原创)vbscript 字符串处理函数

'**************************************************

'截取指定长度的字符串(两个字母计成一个字符)
'str - 原始字符串,
'lennum - 截取长度,
'chopedString - 省略后面跟的字符串

'**************************************************
Function InterceptString(str,lennum, chopedString)
 Dim orignalLen
 If Len(str) > 0 Then
  orignalLen = Len(str)
  Dim count, i 
  Dim newStr
  newstr = ""
  i = 0
  count = 0
  Do while i < lennum and i < orignalLen  and i < lennum * 2
   i = i + 1
   If Asc(Mid(str,i,1))<0 Then
    count = count + 1
   else
    count = count + 2
   end if
  Loop
  if orignalLen > count Then
   InterceptString = Left(Str, Cint(count)) & chopedString
  else
   InterceptString = Left(Str, Cint(count))
  end if
 Else
  InterceptString=""
 End If
 End Function

 

'GB转UTF8--将GB编码文字转换为UTF8编码文字
Function toUTF8(szInput)
 On Error Resume next
    Dim wch, uch, szRet
    Dim x
    Dim nAsc, nAsc2, nAsc3
    '如果输入参数为空,则退出函数
    If szInput = "" Then
        toUTF8 = szInput
        Exit Function
    End If
    '开始转换
     For x = 1 To Len(szInput)
        '利用mid函数分拆GB编码文字
        wch = Mid(szInput, x, 1)
        '利用ascW函数返回每一个GB编码文字的Unicode字符代码
        '注:asc函数返回的是ANSI 字符代码,注意区别
        nAsc = AscW(wch)
        If nAsc < 0 Then nAsc = nAsc + 65536
   
        If (nAsc And &HFF80) = 0 Then
            szRet = szRet & wch
        Else
            If (nAsc And &HF000) = 0 Then
                uch = "%" & Hex(((nAsc \ 2 ^ 6)) Or &HC0) & Hex(nAsc And &H3F Or &H80)
                szRet = szRet & uch
            Else
               'GB编码文字的Unicode字符代码在0800 - FFFF之间采用三字节模版
                uch = "%" & Hex((nAsc \ 2 ^ 12) Or &HE0) & "%" & _
                            Hex((nAsc \ 2 ^ 6) And &H3F Or &H80) & "%" & _
                            Hex(nAsc And &H3F Or &H80)
                szRet = szRet & uch
            End If
        End If
    Next
       
    toUTF8 = szRet
End Function

 

 

转载于:https://www.cnblogs.com/anny-1980/articles/1299712.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值