Fonction de décodage d'URL, simple et facile à comprendre. La raison principale est que le chinois d'origine a été codé en URL. Lorsqu'il est utilisé spécifiquement, il doit être restauré en chinois, une telle fonction est donc nécessaire. Par exemple:
Lorsque nous recherchons Script Home dans Baidu, les paramètres après l'URL sont
http://www.baidu.com/s?cl=3&wd=%BD%C5%B1%BE%D6%AE%BC%D2
Si nous voulons restaurer %BD%C5%B1%BE%D6%AE%BC%D2 en chinois, utilisez simplement la fonction suivante.
<%
réponse.write urldecode (http://www.baidu.com/s?cl=3&wd=%BD%C5%B1%BE%D6%AE%BC%D2)
'=================================================
'Nom de la fonction : URLDecode
'Fonction : décodage d'URL
'=================================================
Fonction URLDecode(ByVal urlcode)
Dim début, finale, longueur, char, i, butf8, pass
Dim gauche, droite, finale
Dim b0,b1,bx,blongueur,position,u,utf8
En cas d'erreur, reprendre ensuite
b0 = Tableau (192 224 240 248 252 254)
urlcode = Remplacer (urlcode,+, )
réussite = 0
utf8 = -1
longueur = Len(urlcode) : start = InStr(urlcode,%) : final = InStrRev(urlcode,%)
Si début = 0 Ou longueur < 3 Alors URLDecode = urlcode : Quitter la fonction
leftstr = Gauche(urlcode,start - 1) : rightstr = Right(urlcode,length - 2 - final)
Pour i = début à la fin
char = Milieu (urlcode,i,1)
Si char =% Alors
bx = URLDecode_Hex(Mid(urlcode,i + 1,2))
Si bx > 31 Et bx < 128 Alors
je = je + 2
chaîne finale = chaîne finale & ChrW (bx)
SinonSi bx > 127 Alors
je = je + 2
Si utf8 < 0 Alors
butf8 = 1 : blongueur = -1 : b1 = bx
Pour position = 4 à 0 Étape -1
Si b1 >= b0(position) Et b1 < b0(position + 1) Alors
longueur = position
Quitter pour
Fin si
Suivant
Si longueur > -1 Alors
Pour position = 0 À longueur
b1 = URLDecode_Hex(Mid(urlcode,i + position * 3 + 2,2))
Si b1 < 128 Ou b1 > 191 Alors butf8 = 0 : Sortie Pour
Suivant
Autre
maisf8 = 0
Fin si
Si butf8 = 1 Et blength = 0 Alors butf8 = -2
Si butf8 > -1 Et utf8 = -2 Alors i = start - 1 : finalstr = : pass = 1
utf8 = butf8
Fin si
Si réussite = 0 Alors
Si utf8 = 1 Alors
b1 = bx : u = 0 : blongueur = -1
Pour position = 4 à 0 Étape -1
Si b1 >= b0(position) Et b1 < b0(position + 1) Alors
longueur = position
b1 = (b1 xOu b0(position)) * 64 ^ (position + 1)
Quitter pour
Fin si
Suivant
Si longueur > -1 Alors
Pour position = 0 À longueur
bx = URLDecode_Hex(Mid(urlcode,i + 2,2)) : i = i + 3
Si bx < 128 Ou bx > 191 Alors u = 0 : Sortie Pour
u = u + (bx Et 63) * 64 ^ (blongueur - position)
Suivant
Si u > 0 Alors finalstr = finalstr & ChrW(b1 + u)
Fin si
Autre
b1 = bx * &h100 : u = 0
bx = URLDecode_Hex(Mid(urlcode,i + 2,2))
Si bx > 0 Alors
u = b1 + bx
je = je + 3
Autre
Si Gauche(urlcode,1) = % Alors
u = b1 + Asc(Mid(urlcode,i + 3,1))
je = je + 2
Autre
u = b1 + Asc(Mid(urlcode,i + 1,1))
je = je + 1
Fin si
Fin si
chaîne finale = chaîne finale & Chr(u)
Fin si
Autre
réussite = 0
Fin si
Fin si
Autre
finalstr = finalstr & char
Fin si
Suivant
URLDecode = chaîne gauche & chaîne finale & chaîne droite
Fonction de fin
Fonction URLDecode_Hex(ByVal h)
En cas d'erreur, reprendre ensuite
h = &h & Trim(h) : URLDecode_Hex = -1
Si Len(h) <> 4 Alors quittez la fonction
Si isNumeric(h) Alors URLDecode_Hex = cInt(h)
Fonction de fin
%>