Foros del Web » Programando para Internet » ASP Clásico »

server.htmlencode y server.urlencode

Estas en el tema de server.htmlencode y server.urlencode en el foro de ASP Clásico en Foros del Web. hola estoy intentando enlazar por medio de include de esta manera de este campo de texto: Este esta en una pagina .asp: <td align=left width="47%"><textarea ...
  #1 (permalink)  
Antiguo 09/10/2007, 02:49
 
Fecha de Ingreso: agosto-2007
Mensajes: 79
Antigüedad: 16 años, 8 meses
Puntos: 0
server.htmlencode y server.urlencode

hola estoy intentando enlazar por medio de include de esta manera de este campo de texto:

Este esta en una pagina .asp:
<td align=left width="47%"><textarea name=createby value="<%=Server.HTMLEncode("strcreateby")%>" size="" ROWS=2 COLS=25></textarea></td></tr>

este es un archivo .asp:
a este que debe recibir el mensaje:
<!-- Add createby here --><font size=2><strong>INGENIERO:</strong></font>&nbsp;<%=Server.HTMLEncode(strcreateby)%>


y aqui es dond deberia darme el resultado de lo escrito en la primera pagina .asp:
<td align=left valign=top width="17.74%"><!--#INCLUDE FILE="include\asp\createby.asp"--></td>


mi pregunta es por que no se me ve nada en el campo dond deberia de verse lo escrito en el campo de texto?????
  #2 (permalink)  
Antiguo 09/10/2007, 04:56
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 19 años, 5 meses
Puntos: 9
Re: server.htmlencode y server.urlencode

A mi los includes me funcionan con las barras del otro lado (y estoy en windows..)

Código:
<!--#INCLUDE FILE="include/asp/createby.asp"-->
Si no funciona bien, prueba a cambiar el contenido del include createby.asp por un Response.write("Soy el include") a vewr si está llegando a llamarlo o ni siquiera logra encontrarlo, prueba también a poner el include en la misma carpeta a ver si así sí funciona...

Última edición por PosProdukcion; 09/10/2007 a las 05:27
  #3 (permalink)  
Antiguo 09/10/2007, 11:24
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 19 años, 5 meses
Puntos: 9
Re: server.htmlencode y server.urlencode

Después de investigar un poco más, no he dado con una solución al problema de Server.HTMLEncode() con charset=utf-8

Al recoger texto de un textarea, este texto se recoge sin problemas aunque contenga eñes, tildes o caracteres <, >, ", &, etc. El problema viene cuando se quiere mostrar ese texto dentro de una página html o se quiere grabar en una bd

Si se quiere mostrar este texto dentro del codigo HTML manteniendo el UTF-8 hay varias opciones no buenas:
  1. Mostrarlo tal cual, con lo que los caracteres <, >, ", & pueden provocar errores mezclados con el HTML
  2. Utlizar Server.HTMLEncode(texto), sería lo suyo pero codifica mal las tildes y eñes, según se dice aquí y aquí
  3. No codificar y hacerte tu propia función apra sustituir <, >, ", & y alguno más que seguro me olvido (tal vez la mejor solución sin cambiar el charset)

La otra opción es usar charset=ISO-8859-1 en la página que se usa el HTMLEncode, que funciona bien para Server.HTMLEncode(texto), PERO tiene el inconveniente de que te obliga a escribir cada tilde o eñe con la notación "acute" como & o a c u t e ;, incluidos los rótulos y mensajes que tengas en tu html. Yo he probado a mostrar el texto codificado en ISO-8859-1 en páginas UTF-8 y parece que funciona bien (no he probado muy a fondo)

Cambiar la propiedad Response.charset o Session.codepage no es solución, hasta donde yo he podido comprobar. Aquí hablan del codepage pero a mí no me ha solucionado gran cosa...

Yo voto por la solución 3 (tu propia función + utf-8) o la de cambiar a iso-8859-1 sólo en la página donde se usa HTMLEncode

Aquí tienes un script para probar, tiene un textarea donde introducir texto con tildes, eñes y <, >, etc... Para probarlo cambia el charset marcado en rojo entre UTF-8 e ISO-8859-1...

Código:
<%@ Language=VBScript %>
<%option explicit
Response.Buffer=true%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta http-equiv="Content-Language" content="sp">
  <title></title>
	<link rel="stylesheet" type="text/css" href="backoffice.css">
  </head>
  <body>
    <h3>El cañón de Navarone &amp; &lt;COCÓ&gt; (escrito con tildes a pelo)</h3>
    <h3>El ca&ntilde;&oacute;n de Navarone &amp; &lt;COC&Oacute;&gt;  (escrito con cod. "acute")</h3>
        <%
            Dim texto, charS

           texto = Request.form("texto")
            If texto <> "" Then
                Response.write(texto)
                Response.write(" <b><- sin encode <br /> con encode -></b>  ")
                Response.write(Server.HTMLEncode(texto))
                Response.write("<br />")
            End If
            Response.write ("charset=" & Response.Charset & "<br />")
            Response.write ("codepage=" & Response.Codepage & "<br />")
%>
    <form name="frmPrueba" action="_prueba.asp" method="post">
    <textarea name="texto" rows="10" cols="10"><%=texto%></textarea><br />
    <input type="submit" value="Apretá aqu&iacute;!">
    </form>
  </body>
</html>
Esto es a la conclusión que he lelgao haciendo estas pruebas y leyendo un poco, teniendo en cuenta que no soy ningún experto, así que no lo tomes como definitivo y pruébalo bien...

EDITO: Por cierto, este mensaje está relacionado con este otro, por si no encontráis mucha relación con la pregunta
  #4 (permalink)  
Antiguo 09/10/2007, 11:31
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
Re: server.htmlencode y server.urlencode

Cita:
Iniciado por jocaorsa Ver Mensaje
blablabla....

mi pregunta es por que no se me ve nada en el campo dond deberia de verse lo escrito en el campo de texto?????

Porque los textareas NO TIENEN value. Esto está mal:

Código:
<textarea name=createby value="<%=Server.HTMLEncode("strcreateby")%>" size="" ROWS=2 COLS=25></textarea>

Esto es correcto:
Código:
<textarea name=createby size="" ROWS=2 COLS=25><%=Server.HTMLEncode("strcreateby")%></textarea>
__________________
...___...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:37.