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 
  • 相关阅读:
    Metropolis-Hastings algorithm
    Base64编码原理
    修改远程端口号
    修改数据库配置文件
    Windows 2008下系统网站运行环境的搭建
    oracle 11 g数据库卸载(方法二)
    oracle11g的安装
    oracle 11g的卸载
    软件实施的技巧
    使用命令行快速打开系统文件
  • 原文地址:https://www.cnblogs.com/xxaxx/p/1635300.html
Copyright © 2011-2022 走看看