Foros del Web » Programación para mayores de 30 ;) » .NET »

htmlencode y caracteres especiales

Estas en el tema de htmlencode y caracteres especiales en el foro de .NET en Foros del Web. Hola a todos, desarrollo una aplicacion en asp.net. Al mostrar datos utilizo server.htmlencode ya que según parece te proteje de ciertos riesgos. la cuestión es ...
  #1 (permalink)  
Antiguo 28/12/2007, 11:29
 
Fecha de Ingreso: noviembre-2007
Mensajes: 15
Antigüedad: 16 años, 5 meses
Puntos: 0
htmlencode y caracteres especiales

Hola a todos,

desarrollo una aplicacion en asp.net. Al mostrar datos utilizo server.htmlencode ya que según parece te proteje de ciertos riesgos.

la cuestión es que no me muestra correctamente ni los acentos ni las eñes en las TextBox. Depués de muchjo buscar se comenta que es por el lenguaje utilizado por mi navegador. He intentado forzarlo de la siguiente manera:

1.- en el head del masterpage:
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
el problema lo tengo en un place holder, ¿debería ponerlo ahí? ¿cómo?

en el web.config:
<globalization requestEncoding="utf-8" responseEncoding="utf-8" />

de ninguna de las maneras funciona.

Saludos y muchas gracias.

Última edición por Kikuchiyo; 30/12/2007 a las 03:58
  #2 (permalink)  
Antiguo 30/12/2007, 11:06
 
Fecha de Ingreso: diciembre-2007
Mensajes: 22
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: htmlencode y caracteres especiales

Como tu bien dices en asp.net, trae por defecto activado el htmldecode, esto para proteger de ataques por codigo en nuestros formularios.
Si estas extrayendo datos de una bd a tu textbox solo tienes que colocar la siguiente linea

textbox1.text = HttpUtility.HtmlDecode("TuCampo")

espero que te sirva.
  #3 (permalink)  
Antiguo 02/01/2008, 05:57
 
Fecha de Ingreso: noviembre-2007
Mensajes: 15
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: htmlencode y caracteres especiales

me sirve leipunk, gracias, pero entonces ya no entiendo muy bien bien la utilidad de encode y decode, ¿cuando se debe utilizar y cual es su utilidad?

feliz año!
  #4 (permalink)  
Antiguo 02/01/2008, 08:27
 
Fecha de Ingreso: diciembre-2007
Mensajes: 22
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: htmlencode y caracteres especiales

Que bueno que haya sido de utilidad.
Basicamente, el encode es una propiedad que biene habilitado por defecto en el desarrollo de paginas asp.net, es un metodo de seguridad para evitar la injeccion de secuencias de comando en transaq sql o simplemente sql.
Esta opcion se puede desabilitar para toda la pagina, el sitio o solamente como en el ejemplo que te envie, para un control especifico.

saludos.
  #5 (permalink)  
Antiguo 03/01/2008, 05:31
 
Fecha de Ingreso: noviembre-2007
Mensajes: 15
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: htmlencode y caracteres especiales

ok, ¿entonces tiene sentido que para todas las llegadas de base de datos ponga por ejemplo esto?: txtApellidos.Text = Server.HtmlEncode(DatosUsuario.Apellidos)

saludos y gracias.
  #6 (permalink)  
Antiguo 03/01/2008, 06:56
 
Fecha de Ingreso: diciembre-2007
Mensajes: 22
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: htmlencode y caracteres especiales

no en ese caso deberia ser Server.HtmlDecode. Pero en el caso particular de un Apellido por ejemplo Perez, el .net no detecta codigo que pueda ser peligroso. En cambio si colocas signos de html por ejemplo <Perez>, esto estaria codificando y guardando en la base de datos asi & # 6 1 ;Perez & # 6 2 ; (pero obiamente junto)

* los caracteres & # 6 2 ; juntalos y forman los signos en html
  #7 (permalink)  
Antiguo 03/01/2008, 10:58
 
Fecha de Ingreso: noviembre-2007
Mensajes: 15
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: htmlencode y caracteres especiales

ok leipunk, por lo tanto sólo debere utilizar esto cuando quiera almacenar y mostrar caracteres propios de html, en cualquier otro caso no utilizare encode/decode puesto que asp ya se encarga de realizar el encode para caracteres html, ¿cierto?
gracias por tu paciencia, viniento del VB clásico el entorno web me cuesta un poquillo...
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 13:15.