Función encode decode ASP clásico

Escrito por Programador ASP clásico en Código ASP clásico


Funciones encode / decode para realizar la codificación y decodificación de cadenas de texto pasadas a través de querystring en ASP clásico.

Server.URLEncode

Se utiliza para la codificación de los datos que se pasará a través de una variable querystring. Una variable de cadena de consulta (querystring) es cualquier cosa siguiendo el signo de interrogación (?) en el campo URL de su navegador. Se utiliza querystring cuando se realiza una redirección o se construye un hipervínculo a otra página en su sitio.

<a href="page2.asp?name=Pancracio+Luna">click</a>

  <%
Response.Redirect "page2.asp?ID=3"
%>

En el ejemplo anterior, el hipervínculo contiene una variable llamada "name", que tiene un valor de "Pancracio Luna" (el espacio se codifica como "+").

En la declaración Response.Redirect, tenemos una variable querystring llamada "ID" con un valor de 3.

Para realizar una codificación URL en una variable (a efectos de pasar la variable a otra página) utilice el siguiente código ASP clásico:

<a href="page2.asp?name=<%= Server.URLEncode(sName) %>">click</a>
  

<%  Response.Redirect "page2.asp?ID=" &_      Server.URLEncode(nID)  %>


URLDecode

Por alguna razón, Microsoft no incluyó una función de decodificación URL con Active Server Pages. Probablemente, esto se debía a que la decodificación de las variables de cadena de consulta se realiza automáticamente para usted cuando se accede al objeto cadena de consulta:

<%= Request.QueryString("name") %>

Para aquellos que necesiten esta función:


' -----------------------------------------
' URL decode to retrieve the original value

Function URLDecode(sConvert)
Dim aSplit
Dim sOutput
Dim I
If IsNull(sConvert) Then
URLDecode = ""
Exit Function
End If

' convert all pluses to spaces
sOutput = REPLACE(sConvert, "+", " ")

' next convert %hexdigits to the character
aSplit = Split(sOutput, "%")

If IsArray(aSplit) Then
sOutput = aSplit(0)
For I = 0 to UBound(aSplit) - 1
sOutput = sOutput & _
Chr("&H" & Left(aSplit(i + 1), 2)) &_
Right(aSplit(i + 1), Len(aSplit(i + 1)) - 2)
Next
End If

URLDecode = sOutput
End Function

Server.HTMLEncode

Esta función incorporada de utilidad es muy útil para la codificación de texto que se debe mostrar en un campo input de formularios. Un campo input es un control de formulario web, como input o textarea. Usted puede haber notado que ciertos caracteres HTML son interpretados incorrectamente en el formulario web. En concreto, los caracteres de la etiqueta HTML "<" y ">" pueden tener este efecto, así como el carácter de comillas (") que se utiliza para encapsular los valores.

<textarea name="sample" width=38 height=10>


<%= Server.HTMLEncode(sValue) %>
</textarea>


HTMLDecode

Al igual que con la función URLDecode descrita anteriormente, Microsoft, en su infinita sabiduría decidió no incluir una función HTMLDecode con su componente de servidor. De cualquier forma, aquí esta una función HTMLDecode que puede usar:

Function HTMLDecode(sText)
Dim I
sText = Replace(sText, "&quot;", Chr(34))
sText = Replace(sText, "&lt;" , Chr(60))
sText = Replace(sText, "&gt;" , Chr(62))
sText = Replace(sText, "&amp;" , Chr(38))
sText = Replace(sText, "&nbsp;", Chr(32))
For I = 1 to 255
sText = Replace(sText, "&#" & I & ";", Chr(I))
Next
HTMLDecode = sText
End Function

Publicado el 17/06/2015 a las 10:33:11 hrs. | 1069 visitas.

Subir
Web hosting by Somee.com