Agora mesmo:
Se houver espaços, use %20, se houver outros caracteres, use %ASCII. Se houver quatro caracteres de bytes, como caracteres chineses, use dois %ASCII. No entanto, às vezes também precisamos decodificar as cordas codificadas dessa maneira, mas o ASP não fornece funções relevantes, o que nos traz alguns problemas para lidar com o problema. De fato, desde que conheçamos as regras de codificação, podemos usar o código ASP para implementar nossa própria função URLDecode.
A implementação específica é a seguinte:
A cópia do código é a seguinte:
FunctionUrldCode (codestro)
Newsstr = ""
HaveChar = Falso
lastchar = ""
fori = 1tolen (codestro)
char_c = mid (codest, i, 1)
ifchar_c = "+" então
NEWSTR = Newstr & ""
elseifchar_c = "%" então
Next_1_c = MID (codestre, i+1,2)
next_1_num = cint ("& h" & next_1_c)
IfhaveCharthen
HaveChar = Falso
NEWSTR = Newstr & Chr (Cint ("& H" & Lastchar & Next_1_C))
outro
ifabs (next_1_num) <= 127then
NEWSTR = Newstr & Chr (Next_1_Num)
outro
HaveChar = True
lastchar = next_1_c
endif
endif
i = i+2
outro
NEWSTR = Newstr & char_c
endif
próximo
urldecode = newstr
Função final
Aqui está uma função mais madura para você:
A cópia do código é a seguinte:
'=====================================================================
'Nome da função: urldecode
'Função: Decodificação de URL
'=====================================================================
Função urldecode (byval urlcode)
Start Dim, final, comprimento, char, i, butf8, passe
Dim LeftStr, RightStr, Finalstr
Dim B0, B1, BX, Blength, Posição, U, Utf8
Em erro de erro em seguida
B0 = Array (192.224.240.248.252.254)
urlcode = substituir (urlcode, "+", "")
passe = 0
utf8 = -1
comprimento = len (urlcode): start = instrum (urlcode, "%"): final = instrumv (urlcode, "%")
Se inicial
leftstr = esquerda (urlcode, start - 1): direita = direita (urlcode, comprimento - 2 - final)
Para i = começo a final
char = MID (urlcode, i, 1)
Se char = "%" então
bx = urldecode_hex (mid (urlcode, i + 1,2))
Se BX> 31 e BX <128 Então
i = i + 2
Finalstr = Finalstr & Chrw (BX)
Elseif bx> 127 então
i = i + 2
Se utf8 <0 então
Butf8 = 1: Blength = -1: B1 = BX
Para posição = 4 a 0 Etapa -1
Se B1> = B0 (posição) e B1 <B0 (posição + 1) então
Blength = Posição
Saída para
Final se
Próximo
Se Blength> -1 então
Para posição = 0 para o corpo
b1 = urldecode_hex (mid (urlcode, i + position * 3 + 2,2))
Se B1 <128 ou B1> 191 então Butf8 = 0: Saia para
Próximo
Outro
butf8 = 0
Final se
Se butf8 = 1 e Blength = 0 então Butf8 = -2
Se butf8> -1 e utf8 = -2 então i = start -1: finalalstr = "": pass = 1