Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ZioNN

Caracteres estranhos na URL de retorno. Como traduzir isso?

Recommended Posts

Estou recebendo a seguinte URL de resposta da mastercard. Veja que o item MSGRET, que deve ser impresso na tela, tá com uns caracteres estranhos.Já tentei server.HTMLEncode e server.URLEncode e nada.Como traduzir isso?pagamento_mastercard2.asp?CODRET=53&MSGRET=Transa%25E7%25E3o+inv%25E1lida.Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

a um tempo atras tive problema com isso mas retornava de um xml, infelizmente não encontrei a solução na época nem hoje no google. Acho que uma função usando replace pra converter os caracteres resolve, problema vai ser saber todos os caracteres que devem ser substituidos. No seu caso o simples seria assim

x=request.QueryString("MSGRET")x= replace(x,"%E7","ç")x= replace(x,"%E3","ã")x= replace(x,"%E1","á")Response.Write(x)
achei no google uma lista desses caracteres(codigo em javascript), dá pra fazer uma função no asp usando a mesma ideia que fiz acima

valor = valor.replace(/á/, "%E1") .replace(/â/, "%E2") .replace(/ã/, "%E3") .replace(/Á/, "%C1") .replace(/Â/, "%C2") .replace(/Ã/, "%C3") .replace(/É/, "%C9") .replace(/é/, "%E9") .replace(/ê/, "%EA") .replace(/Í/, "%CD") .replace(/í/, "%ED") .replace(/Ó/, "%D3") .replace(/Ô/, "%D4") .replace(/Õ/, "%D5") .replace(/ó/, "%F3") .replace(/õ/, "%F5") .replace(/ô/, "%F4") .replace(/Ú/, "%DA") .replace(/Ü/, "%DC") .replace(/ú/, "%FA") .replace(/ü/, "%FC") .replace(/ç/, "%E7") .replace(/Ç/, "%C7")

Compartilhar este post


Link para o post
Compartilhar em outros sites

galera andei procurando a respeito e econtrei um codigo ensinando certinho, só não concegui faze funciona, mais ai vai o codigo.

 

Function CharFromHex(myHex)	 myHex = "&H" & myHex	 Dim myInt, myChar	 myInt = CInt(myHex)	 myChar = Chr(myInt)	 CharFromHex = myCharEnd FunctionDim rere = New RegExpre.Pattern = "%(..)"re.Global = TruemyURL = "http%3A//"myURL = re.Replace(myURL, CharFromHex("$1"))

 

pagina http://lists.evolt.org/archive/Week-of-Mon...429/111582.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

PHP

php.net/urlencode codifica

php.net/urldecode decodifica

 

JavaScript

unescape()

escape()

 

 

ASP

Server.URLEncode()

Server.URLDecode()

 

 

se por acaso a url tiver caracteres UTF-8 deve-se fazer uma pequena implementação antes da conversão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

a um tempo atras tive problema com isso mas retornava de um xml, infelizmente não encontrei a solução na época nem hoje no google. Acho que uma função usando replace pra converter os caracteres resolve, problema vai ser saber todos os caracteres que devem ser substituidos. No seu caso o simples seria assim

Valeu mesmo cara! Eu já estava fazendo uma funçãozinha pra isso e funcionou, mas não tinha o mapa com todos os caracteres. Vou utilizar essa sua tabela. Maravilha. Já vai quebrar um galho até eu descobrir a solução definitiva. Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

segue uma pequena função que saiu agora, fiz pra passar o tempo

 

<%x=request.QueryString("MSGRET")function ascii(qString) tempText   = qString arrayCharTrash = split("%E1,%E2,%E3,%C1,%C2,%C3,%C9,%E9,%EA,%CD,%ED,%D3,%D4,%D5,%F3,%F5,%F4,%DA,%DC,%FA,%FC,%E7,%C7",",") arrayCharOk  = split("á,â,ã,Á,Â,Ã,É,é,ê,Í,í,Ó,Ô,Õ,ó,õ,ô,Ú,Ü,ú,ü,ç,Ç",",") for i = 0 to ubound(arrayCharTrash)  tempText = replace(tempText,arrayCharTrash(i),arrayCharOk(i)) next  ascii = tempTextend functionResponse.Write(ascii(x))%>
hinom, se não me falha a memoria Asp não tem urldecode e sim htmlencode e urlencode

Compartilhar este post


Link para o post
Compartilhar em outros sites

ASP

Server.URLEncode()

Server.URLDecode()

 

se por acaso a url tiver caracteres UTF-8 deve-se fazer uma pequena implementação antes da conversão.

Server.URLEncode() não serviu, como já tinha postado anteriormente,

 

Server.URLdecode() ? Are U sure? Ou foi no chutômetro?

 

Aqui deu:

 

Microsoft VBScript runtime error '800a01b6'

 

Object doesn't support this property or method: 'URLDecode'

Compartilhar este post


Link para o post
Compartilhar em outros sites

foi mal, esqueci de passar a funcao

 

<% 	Function URLDecode(str) 		str = Replace(str, "+", " ") 		For i = 1 To Len(str) 			sT = Mid(str, i, 1) 			If sT = "%" Then 				If i+2 < Len(str) Then 					sR = sR & _ 						Chr(CLng("&H" & Mid(str, i+1, 2))) 					i = i+2 				End If 			Else 				sR = sR & sT 			End If 		Next 		URLDecode = sR 	End Function  	Function URLEncode(str) 		URLEncode = Server.URLEncode(str) 	End Function  	str1 = "ento_mastercard2.asp?CODRET=53&MSGRET=Transação inválida." 	str2 = URLEncode(str1) 	str3 = URLDecode(str2) 	Response.Write(str1 & "<br>" & str2 & "<br>" & str3) %>

Compartilhar este post


Link para o post
Compartilhar em outros sites

foi mal, esqueci de passar a funcao

Hinom, perfeito cara! Valeu mesmo. Já tá rodandoAbraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok ZioNNmas peço que tome cuidado com o que escreve pois nesse tópico você demonstrou falta de educação apesar de várias pessoas terem postado pra ajudar.talvez tenha sido a forma como você escreveu, preste atenção nas palavras que usa. ok ?flows

Compartilhar este post


Link para o post
Compartilhar em outros sites

foi mal, esqueci de passar a funcao

<% 	Function URLDecode(str) 		str = Replace(str, "+", " ") 		For i = 1 To Len(str) 			sT = Mid(str, i, 1) 			If sT = "%" Then 				If i+2 < Len(str) Then 					sR = sR & _ 						Chr(CLng("&H" & Mid(str, i+1, 2))) 					i = i+2 				End If 			Else 				sR = sR & sT 			End If 		Next 		URLDecode = sR 	End Function  	Function URLEncode(str) 		URLEncode = Server.URLEncode(str) 	End Function  	str1 = "ento_mastercard2.asp?CODRET=53&MSGRET=Transação inválida." 	str2 = URLEncode(str1) 	str3 = URLDecode(str2) 	Response.Write(str1 & "<br>" & str2 & "<br>" & str3) %>
Eu já tinha encontrado esse código em outro site (http://classicasp.aspfaq.com/general/how-do-i-decode-an-encoded-url.html) e estava com o mesmo erro.Me cadastrei no forum só para postar a correção.Onde está: If i+2 < Len(str) Then deve-se alterar o "<" para "<=" ou a função não converte o último caracter.Além disso é bom limpar a variável sR caso a função seja usada mais de uma vez:
dim i, sT, sR	Function URLDecode(str)		sR = "" 		str = Replace(str, "+", " ") 		For i = 1 To Len(str) 			sT = Mid(str, i, 1) 			If sT = "%" Then 				If i+2 <= Len(str) Then 					sR = sR & _ 						Chr(CLng("&H" & Mid(str, i+1, 2))) 					i = i+2 				End If 			Else 				sR = sR & sT 			End If 		Next 		URLDecode = sR 	End Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.