ตอนนี้:
หากมีช่องว่างให้ใช้ %20 แทนหากมีอักขระอื่นให้ใช้ %ascii แทน หากมีอักขระสี่ไบต์เช่นอักขระจีนให้ใช้ ASCII สอง %แทน อย่างไรก็ตามบางครั้งเราจำเป็นต้องถอดรหัสสตริงที่เข้ารหัสด้วยวิธีนี้ แต่ ASP ไม่ได้ให้ฟังก์ชั่นที่เกี่ยวข้องซึ่งนำปัญหาบางอย่างมาให้เราในการจัดการกับปัญหา ในความเป็นจริงตราบใดที่เรารู้กฎการเข้ารหัสเราสามารถใช้รหัส ASP เพื่อใช้ฟังก์ชั่น urldeCode ของเราเอง
การใช้งานเฉพาะมีดังนี้:
การคัดลอกรหัสมีดังนี้:
functionurldecode (encodestr)
Newsstr = ""
havechar = false
LastChar = ""
fori = 1tolen (encodestr)
char_c = mid (encodestr, i, 1)
ifchar_c = "+" แล้ว
Newsstr = Newstr & ""
elseifchar_c = "%" แล้ว
next_1_c = mid (encodestr, i+1,2)
next_1_num = cint ("& h" & next_1_c)
ifhavecharthen
havechar = false
Newsstr = Newstr & Chr (cint ("& h" & lastchar & next_1_c)))
อื่น
ifabs (next_1_num) <= 127 จากนั้น
Newsstr = Newstr & Chr (next_1_num)
อื่น
havechar = true
LastChar = next_1_c
endif
endif
i = i+2
อื่น
Newsstr = Newstr & char_c
endif
ต่อไป
urldeCode = newStr
endfunction
นี่คือฟังก์ชั่นที่เป็นผู้ใหญ่มากขึ้นสำหรับคุณ:
การคัดลอกรหัสมีดังนี้:
-
'ชื่อฟังก์ชั่น: urldeCode
'ฟังก์ชั่น: การถอดรหัส URL
-
function urldeCode (byval urlcode)
Dim Start, Final, Length, Char, I, Butf8, Pass
dim leftstst, rightstr, finalsstr
Dim b0, b1, bx, blength, ตำแหน่ง, u, utf8
เมื่อเกิดข้อผิดพลาดต่อไป
B0 = อาร์เรย์ (192,224,240,248,252,254)
urlCode = แทนที่ (urlCode, "+", "")
ผ่าน = 0
utf8 = -1
ความยาว = len (urlcode): start = instr (urlcode, "%"): final = instrrev (urlcode, "%")
ถ้า start = 0 หรือความยาว <3 ดังนั้น urldecode = urlCode: ออกจากฟังก์ชัน
leftstr = ซ้าย (urlcode, start - 1): rightstr = ขวา (urlcode, ความยาว - 2 - สุดท้าย)
สำหรับ i = เริ่มสุดท้าย
char = mid (urlcode, i, 1)
ถ้า char = "%" แล้ว
bx = urldecode_hex (mid (urlcode, i + 1,2)))
ถ้า bx> 31 และ bx <128 แล้ว
i = i + 2
FinalSTR = FinalSTR & CHRW (BX)
elseif bx> 127 แล้ว
i = i + 2
ถ้า UTF8 <0 แล้ว
butf8 = 1: blength = -1: b1 = bx
สำหรับตำแหน่ง = 4 ถึง 0 ขั้นตอน -1
ถ้า b1> = b0 (ตำแหน่ง) และ b1 <b0 (ตำแหน่ง + 1) แล้ว
blength = ตำแหน่ง
ออกจาก
สิ้นสุดถ้า
ต่อไป
ถ้า blength> -1 แล้ว
สำหรับตำแหน่ง = 0 ถึงความยาว
b1 = urldecode_hex (mid (urlcode, i + ตำแหน่ง * 3 + 2,2)))
ถ้า b1 <128 หรือ b1> 191 แล้ว butf8 = 0: ออกสำหรับ
ต่อไป
อื่น
butf8 = 0
สิ้นสุดถ้า
ถ้า butf8 = 1 และ blength = 0 จากนั้น butf8 = -2
ถ้า butf8> -1 และ utf8 = -2 แล้ว i = start -1: finalStr = "": pass = 1