zoukankan      html  css  js  c++  java
  • VB版URLEncode

      1 Private Function URLEncoding(vstrIn)
      2 strReturn = ""
      3     Dim i
      4 For i = 1 To Len(vstrIn)
      5 ThisChr = Mid(vstrIn, i, 1)
      6 If Abs(Asc(ThisChr)) < &HFF Then
      7 strReturn = strReturn & ThisChr
      8 Else
      9 innerCode = Asc(ThisChr)
     10 If innerCode < 0 Then
     11 innerCode = innerCode + &H10000
     12 End If
     13 Hight8 = (innerCode And &HFF00) \ &HFF
     14 Low8 = innerCode And &HFF
     15 strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
     16 End If
     17 Next
     18 strReturn = Replace(strReturn, Chr(32), "%20")
     19 URLEncoding = strReturn
     20 End Function
     21 
     22 '这个是根据HTML里面的ENSCAPE函数仿做的一个函数实现程序,将文字转换为16进制码表示的代码编码和解码方案
     23 
     24 Function ChangeToChar(CharAsc As Long)
     25 On Error GoTo OnError
     26        ChangeToChar = ChrW(CharAsc)
     27        Exit Function
     28 OnError:
     29        Exit Function
     30 End Function
     31 
     32 Function UnEnscape(enstr As StringAs String
     33 Dim DataLen As Long
     34 Dim TempData As String
     35 Dim filepoint As Long
     36 Dim ChinaText As Long
     37 DataLen = Len(enstr)
     38 filepoint = 1
     39 Do While (filepoint <= DataLen)
     40     If Mid(enstr, filepoint, 1= "%" Then
     41        If Mid(enstr, filepoint + 11= "u" Then
     42        On Error Resume Next
     43        ChinaText = CLng("&H" + Mid(enstr, filepoint + 24))
     44        TempData = TempData + ChangeToChar(ChinaText)
     45        filepoint = filepoint + 6
     46        Else
     47        TempData = TempData + ChrW(CLng("&H" + Mid(enstr, filepoint + 12)))
     48        filepoint = filepoint + 3
     49        End If
     50      Else
     51        TempData = TempData + Mid(enstr, filepoint, 1)
     52        filepoint = filepoint + 1
     53     End If
     54 Loop
     55 UnEnscape = TempData
     56 End Function
     57 
     58 Function Enscape(enstr As StringAs String
     59 Dim OutPutStr As String
     60 Dim TmpStr As String
     61 Dim DataLen As Long
     62 TmpStr = ""
     63 DataLen = Len(enstr)
     64 Dim TempNum As Long
     65 For i = 1 To DataLen
     66 TempNum = AscW(Mid(enstr, i, 1))
     67    Debug.Print TempNum
     68    If TempNum < 16 And TempNum > 0 Then
     69       TmpStr = TmpStr + "%0" + Hex(TempNum)
     70    
     71    ElseIf 48 <= TempNum And TempNum <= 57 Then
     72       
     73       TmpStr = TmpStr + Mid(enstr, i, 1)
     74       
     75     ElseIf 65 <= TempNum And TempNum <= 90 Then
     76       
     77       TmpStr = TmpStr + Mid(enstr, i, 1)
     78       
     79     ElseIf 97 <= TempNum And TempNum <= 122 Then
     80       
     81       TmpStr = TmpStr + Mid(enstr, i, 1)
     82       
     83    
     84     ElseIf 16 <= TempNum And TempNum < 256 Then
     85       TmpStr = TmpStr + "%" + Hex(TempNum)
     86 
     87     ElseIf 4096 > TempNum And TempNum >= 256 Then
     88             If TempNum > 0 Then
     89       TmpStr = TmpStr + "%u0" + Hex(TempNum)
     90       Else
     91       TmpStr = TmpStr + "%u0" + Hex(CLng(&H10000) + TempNum)
     92       End If
     93     ElseIf Abs(TempNum) >= 4096 Then
     94       If TempNum > 0 Then
     95       TmpStr = TmpStr + "%u" + Hex(TempNum)
     96       Else
     97       TmpStr = TmpStr + "%u" + Hex(CLng(&H10000) + TempNum)
     98       End If
     99       
    100     End If
    101 
    102 Next
    103 Enscape = TmpStr
    104 End Function
    105 
  • 相关阅读:
    mysql数据库
    is not in the sudoers file.This incident will be reported
    linux的一些命令
    u盘安装linux(windows7+linux双系统)
    优惠券、礼品卡、礼券
    优惠营销管理
    优惠营销管理
    hdu 1166 线段树单点更新
    hdu 1542 扫描线求矩形面积的并
    hdu 2444 二分图判断与最大匹配
  • 原文地址:https://www.cnblogs.com/xxaxx/p/1635300.html
Copyright © 2011-2022 走看看