Jump to content

URL Decoder (HTML Codes - Characters and symbols)


verzulsan

Recommended Posts

Posted

Decodifica los caracteres especiales de las URL segun el standar (ISO 10646, ISO 8879, ISO 8859-1); basado en el listado de la páginaHTML Codes - Table of ascii characters and symbols.

'Funcion: URL Decodign; _
Decodifica una cadena URL codificada
'Fuentes: http://ascii.cl/htmlcodes.htm
Public Function GetDecodedURL(URLencoded As String) As String

Dim Pcod As String
Dim Pchr As String

'Primero se reemplaza los caracteres especiales para que no sean pisados por el contador
Dim RempQue() As String, RempPor() As String
RempQue() = Split("%352;%338;%339;%352;%353;%376;%402;%8211;%8212;%8216;%8217;%8218;%8220;%8221;%8222;%8224;%8225;%8226;%8230;%8240;%8364;%8482;%2520", ";", , vbTextCompare)
RempPor() = Split("Ÿ;Œ;œ;Š;š;Ÿ;ƒ;–;—;‘;’;‚;“;”;„;†;‡;•;…;‰;€;™; ", ";", , vbTextCompare)
For i = 0 To UBound(RempQue)
URLencoded = Replace(URLencoded, RempQue(i), RempPor(i), 1, , vbTextCompare)
Next

'El resto de reemplazos de caracteres estandar se aplican con un bucle _
Segun la lista de la pagina, caracteres 126-160 no estan reservados y nos lo saltamos
For i = 32 To 255
If i = 126 Then i = 160
Pcode = "%" & Hex(i) 'Caracter a reemplazar
Pchr = Chr(i) 'Nuevo caracter
URLencoded = Replace(URLencoded, Pcode, Pchr, 1, , vbTextCompare)
Next
'Ã%89

'Ahora la parte chapucera (Algunos caracteres que se han saltado la norma de lo lde arriba).
'Depuracion de algunos caracteres que podrian no haber sido reemplazados (puede haber mas)
URLencoded = Replace(URLencoded, "Ã%81", "Á", 1, , vbTextCompare)
URLencoded = Replace(URLencoded, "Ã%89", "É", 1, , vbTextCompare)
'falta Í, Ó, Ú, á, é, í, ó, ú

GetDecodedURL = URLencoded
End Function[/CODE]

La única pega es que los españoles van un poco por libres y los acentos no coinciden, solo he añadido “Á” y “É” al final, el resto supongo que los añadiré cuando me encuentre el caso.

En el archivo hay un ejemplo de URL para convertir.

Saludos.

URL decoder.xls

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

Privacy Policy