Caracteres De Url [SOLUCIONADO]


Objetivo: Caracteres De Url [SOLUCIONADO]
Me suena que se ha tratado el tema alguna vez, pero no encuentro ni recuerdo cuál ni dónde. El tema es:

Tengo una cadena de caracteres que me llega con las famosas sustituciones de url: %20 para los espacios y cosas similares para los acentos, etc. etc. Necesito traducir eso a caracteres normales.

Antes de lanzarme a reinventar la rueda, me suena que había algo que hacía ese trabajo. ¿alguien recuerda algo al respecto?

Saludos.

última edición por shordi el Lunes, 23 May 2016, 09:59; editado 1 vez
Perfil MP  
Objetivo: Re: Caracteres De Url
Me auto-respondo:

La solución está en las funciones encode y decode (en este caso decode) de la clase URL del componente gb.util.web.

Ya sabía yo que me sonaba.


No he dicho na.


Perfil MP  
Objetivo: Re: Caracteres De Url [SOLUCIONADO]
Como puedes ver, 20 es la rapresentación hexadecimal ASCII del caracter de espacio.

Por eso podemos sin otros más Componentes........

Public Sub Main()

Dim url As String

url = "Yo%20no%20soy%20Pythonista%20!"
Print url

Print

url = Replace(url, "%20", "\x20")
Print url

End

última edición por vuott el Lunes, 23 May 2016, 16:50; editado 1 vez
Perfil MP  
Objetivo: Re: Caracteres De Url [SOLUCIONADO]
áéíóúÁÉÍÓÚñѺª... etc

Perfil MP  
Objetivo: Re: Caracteres De Url [SOLUCIONADO]
Letras con acento estás constituidas por 2 numeros.

Exemplum litterae " á " numeros ad inveniendos:
Public Sub Main()

Dim b As Byte

For Each b In Byte[].FromString("á")
Print b, Hex(b);
Next

End



Ejemplo de simil-url:
Public Sub Main()

Dim b As Byte
Dim i As Integer
Dim url, s As String

url = "ab%C3%A1cd%20ef%C3%A9gh%20il%C3%81%20mn%C3%B1op%20qr%C3%B3"

While i < Len(url) ' Leemos cada caracter
Inc i
' Si el caracter es "%"...
If Mid(url, i, 1) = "%" Then
'...pues tomamos el 1° y el 2° caracter sucesivo, y convertimos ambos a una unica rapresentación (numero) decimal.
b = Val("&" & Mid(url, i + 1, 2))
' Convertimos la rapresentación decimal a un caracter:
s &= Chr(b)
i += 2
Else
s &= Mid(url, i, 1)
Endif
Wend

Print s

End

última edición por vuott el Lunes, 23 May 2016, 23:50; editado 5 veces
Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.1531s (PHP: -40% SQL: 140%)
Consultas SQL: 32 - Debug off - GZIP Activado