VBScript的中文编码解码,与JS的Escape()相同功能

本文介绍了一组使用 VBS (Visual Basic Script) 编写的字符串编码及解码函数。其中包括用于转义和取消转义的函数,能够处理 ASCII 字符串,并支持特定字符集的转换。这些函数可用于 Web 开发中处理 URL 参数等场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Function vbsEscape(str) as String
        Dim i As Integer
        Dim c As String
        Dim s As String
        Dim a As Integer
        s=""
    For i=1 to Len(str)
        c=Mid(str,i,1)
        a=ASCW(c)
        If (a>=48 and a<=57) or (a>=65 and a<=90) or (a>=97 and a<=122) Then
            s = s & c
        ElseIf InStr("@*_+-./",c)>0 Then
            s = s & c
        ElseIf a>0 and a<16 Then
            s = s & "%0" & Hex(a)
        ElseIf a>=16 and a<256 Then
            s = s & "%" & Hex(a)
        Else
            s = s & "%u" & Hex(a)
        End If
    Next
    return  s
End Function


Function vbsUnEscape(str)
    dim i,s,c
    s=""
    For i=1 to Len(str)
        c=Mid(str,i,1)
        If Mid(str,i,2)="%u" and i<=Len(str)-5 Then
            If IsNumeric("&H" & Mid(str,i+2,4)) Then
                s = s & CHRW(CInt("&H" & Mid(str,i+2,4)))
                i = i+5
            Else
                s = s & c
            End If
        ElseIf c="%" and i<=Len(str)-2 Then
            If IsNumeric("&H" & Mid(str,i+1,2)) Then
                s = s & CHRW(CInt("&H" & Mid(str,i+1,2)))
                i = i+2
            Else
                s = s & c
            End If
        Else
            s = s & c
        End If
    Next
    vbsUnEscape = s
End Function

Function AscIIString(str as string) as String

        Dim j As Integer
        Dim i As Integer
        Dim charArray() As Char
        Dim charNew() As Char
        Dim strNew As String

        charArray = str.ToCharArray()

        For i = 0 To charArray.Length - 1 Step 1
            strNew = strNew & Asc(charArray(i)).ToString("000")
        Next

        charNew = strNew.ToCharArray()
        strNew = ""

        For j = 0 To charNew.Length - 1 Step 2
            If j = charNew.Length - 1 Then
                strNew = strNew & charNew(j).ToString()
            Else
                strNew = strNew & charNew(j + 1).ToString()
                strNew = strNew & charNew(j).ToString()
            End If

        Next

    return strNew

End Function

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值