Este artigo apresenta principalmente as funções personalizadas URLEncode e URLDecode implementadas no ASP, que são diferentes do server.urlencode que vem com o ASP.
Ao fazer uma postagem no Ajax, descobri que os dados obtidos do servidor sempre estavam distorcidos. Procurei algumas soluções na Internet e não consegui descobrir. Minha postagem estava no formato xml. , o xml do lado do servidor não pôde ser analisado ou ocorreu um erro. Então, codificamos antes de postar e depois decodificamos no servidor. Isso resolve o problema, mas se os dados forem grandes, provavelmente afetará a velocidade.
Embora a solicitação em ASP decodifique automaticamente a string codificada em URL, Request.BinaryRead(Request.TotalBytes) não a decodificará ao obter os dados da postagem, portanto ela deve ser decodificada.
A seguir está a função de decodificação da função server.urlencode em ASP que encontrei
Copie o código do código da seguinte forma:
Função URLDecode(enStr)
dim deStr,strEspecial
dim c,i,v
deStr=""
strSpecial="!""#$%&'()*+,.-_/:;< =>?@[/]^`{|}~%"
para i=1 para len(enStr)
c=Médio(enStr,i,1)
se c = "%" então
v=eval("&h"+Mid(enStr,i+1,2))
se inStr(strSpecial,chr(v))>0 então
deStr=deStr&chr(v)
eu=eu+2
outro
v=eval("&h"+ Mid(enStr,i+1,2) + Mid(enStr,i+4,2))
deStr=deStr & chr(v)
eu=eu+5
terminar se
outro
se c = "+" então
deStr = deStr&" "
outro
deStr = deStr&c
terminar se
terminar se
próximo
URLDecode=deStr
Função final
Em anexo está outra função de codificação. A diferença entre esta e server.urlencode é que server.urlencode converterá tags como html ou xml, como.
A codificação também será executada, mas a função abaixo não. Eu uso o seguinte para codificar e depois decodificar, porque uso xml ao usar post.
Copie o código do código da seguinte forma:
Função privada URLEncoding (vstrIn)
strReturn = ""
Para i = 1 para Len(vstrIn)
EsteChr = Médio(vStrIn,i,1)
Se Abs(Asc(ThisChr)) < &HFF Então
strReturn = strReturn & ThisChr
Outro
código interno = Asc(ThisChr)
Se innerCode < 0 Então
código interno = código interno + &H10000
Terminar se
Hight8 = (innerCode e &HFF00)/&HFF
Low8 = innerCode e &HFF
strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
Terminar se
Próximo
URLEncoding = strReturn
Função final