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.
Caracteres De Url [SOLUCIONADO]
Objetivo: Caracteres De Url [SOLUCIONADO]
última edición por shordi el Lunes, 23 May 2016, 09:59; editado 1 vez
última edición por shordi el Lunes, 23 May 2016, 09:59; editado 1 vez
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.
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.
Objetivo: Re: Caracteres De Url [SOLUCIONADO]
última edición por vuott el Lunes, 23 May 2016, 16:50; editado 1 vez
Como puedes ver, 20 es la rapresentación hexadecimal ASCII del caracter de espacio.
Por eso podemos sin otros más Componentes........
Por eso podemos sin otros más Componentes........
última edición por vuott el Lunes, 23 May 2016, 16:50; editado 1 vez
Objetivo: Re: Caracteres De Url [SOLUCIONADO]
última edición por vuott el Lunes, 23 May 2016, 23:50; editado 5 veces
Letras con acento estás constituidas por 2 numeros.
Exemplum litterae " á " numeros ad inveniendos:
Ejemplo de simil-url:
Exemplum litterae " á " numeros ad inveniendos:
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
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
Página 1 de 1
No puede crear mensajesNo 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