一個URL路徑編碼(ASP版)

Function GetTransNumber(trans_string)'獲取該字符串ASC碼轉義取反的編碼,注意,在編碼前對單個字節的大小進行了規格化,便於以後取值(URL不支持中文,構造URL如有困難請用ANSICode來規格化)
 If IsNull(trans_string) Or trans_string="" Then
  GetTransNumber=""
  Exit Function
 End If
 trans_cache=""
 For trans_index=1 To Len(trans_string)
  trans_num=Asc(Mid(trans_string,trans_index,1))'獲取ASC碼
  If trans_num<0 Then
   '有雙字節字符在裏面,獲得的值爲32位,低8位正負位爲1,無法按規格化取碼(16位)
   GetTransNumber=""
   Exit Function
  End If
  trans_num=255-trans_num'取反,即補碼
  If trans_num<10 Then'補2位
   trans_cache=trans_cache&"00"&trans_num
  ElseIf trans_num<100 Then'補1位
   trans_cache=trans_cache&"0"&trans_num
  Else
   trans_cache=trans_cache&trans_num
  End If
 Next
 GetTransNumber=trans_cache
End Function

Function GetTransString(trans_string)'獲取字符串原值
 If IsNull(trans_string) Or trans_string="" Then
  GetTransString=""
  Exit Function
 End If
 If Len(trans_string) Mod 3>0 Then'字節數校驗,出錯則不予執行
  GetTransString=""
  Exit Function
 End If
 trans_cache=""
 For trans_index=0 To Len(trans_string)/3-1'3位爲一字節
  trans_num=CInt(Mid(trans_string,trans_index*3+1,3))
  trans_cache=trans_cache&Chr(255-trans_num)
 Next
 GetTransString=trans_cache
End Function

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章