Este artículo presenta principalmente las funciones personalizadas URLEncode y URLDecode implementadas en ASP, que son diferentes del server.urlencode que viene con ASP. Los amigos que lo necesiten pueden consultarlo.
Al hacer una publicación en Ajax, descubrí que los datos obtenidos del servidor siempre estaban confusos. Miré algunas soluciones en Internet y no pude entenderlo. Mi publicación estaba en formato xml. , el xml del lado del servidor no se pudo analizar o se produjo un error. Entonces lo codificamos antes de publicarlo y luego lo decodificamos en el servidor. Esto resuelve el problema, pero si los datos son grandes, probablemente afectará la velocidad.
Aunque la solicitud en ASP decodificará automáticamente la cadena codificada en URL, Request.BinaryRead(Request.TotalBytes) no la decodificará al obtener los datos de la publicación, por lo que debe decodificarse.
La siguiente es la función de decodificación de la función server.urlencode en ASP que encontré
Copie el código de código de la siguiente manera:
Función URLDecode(enStr)
tenue deStr,strEspecial
tenue c,i,v
deStr=""
strSpecial="!""#$%&'()*+,.-_/:;< =>?@[/]^`{|}~%"
para i=1 a len(enStr)
c=Medio(enStr,i,1)
si c="%" entonces
v=eval("&h"+Mid(enStr,i+1,2))
si inStr(strSpecial,chr(v))>0 entonces
deStr=deStr&chr(v)
yo=yo+2
demás
v=eval("&h"+ Medio(enStr,i+1,2) + Medio(enStr,i+4,2))
deStr=deStr & chr(v)
yo=yo+5
terminar si
demás
si c="+" entonces
deStr=deStr&" "
demás
deStr=deStr&c
terminar si
terminar si
próximo
URLDecode=deStr
Función final
Se adjunta otra función de codificación. La diferencia entre esto y server.urlencode es que server.urlencode convertirá etiquetas como html o xml, como por ejemplo.
También se realizará la codificación, pero no la función siguiente. Utilizo lo siguiente para codificar y luego decodificar, porque uso xml cuando uso post.
Copie el código de código de la siguiente manera:
Función privada URLEncoding (vstrIn)
strRetorno = ""
Para i = 1 a Len(vstrIn)
ThisChr = Medio(vStrIn,i,1)
Si Abs(Asc(ThisChr)) < &HFF Entonces
strReturn = strReturn y ThisChr
Demás
código interno = Asc(ThisChr)
Si código interno < 0 entonces
código interno = código interno + &H10000
Terminar si
Alto8 = (código interno y &HFF00)/ &HFF
Low8 = código interno y &HFF
strReturn = strReturn & "%" & Hex(Alto8) & "%" & Hex(Bajo8)
Terminar si
Próximo
URLEncoding = strReturn
Función final