Foros del Web » Programando para Internet » PHP »

htmlentities con utf-8 antes de almacenar los caracteres en la db.

Estas en el tema de htmlentities con utf-8 antes de almacenar los caracteres en la db. en el foro de PHP en Foros del Web. Buenas, quiero saber si lo que estoy haciendo es lo correcto. Mi base de datos esta en utf8 y el charset html también. Si uso ...
  #1 (permalink)  
Antiguo 17/06/2011, 16:45
 
Fecha de Ingreso: marzo-2007
Mensajes: 340
Antigüedad: 17 años, 8 meses
Puntos: 4
htmlentities con utf-8 antes de almacenar los caracteres en la db.

Buenas, quiero saber si lo que estoy haciendo es lo correcto. Mi base de datos esta en utf8 y el charset html también.

Si uso htmlentities($variable) antes de insertarla en la base, cuando el dato ingresa un "á" pasa a ser un "Â"

y en el front end se ve Â, por ende no es viable

Si uso htmlentities($var, ENT_QUOTES, "UTF-8"); el "á" pasa a ser á

De esta forma los caracteres se muestran correctamente.

Lo que quiero saber es si es correcto procesar los datos de esta forma antes de insertarlo, o si en la base de datos el dato debería verse "á" y no á

Gracias.
  #2 (permalink)  
Antiguo 17/06/2011, 16:54
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 8 meses
Puntos: 336
Respuesta: htmlentities con utf-8 antes de almacenar los caracteres en la db.

en teoría si tienes tu BD en UTF8 y el HTML también no es necesario que uses htmlentities().

intenta sin htmlentities, y cuentanos como te fué.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #3 (permalink)  
Antiguo 17/06/2011, 17:09
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: htmlentities con utf-8 antes de almacenar los caracteres en la db.

WebDeveloperZ

Si el texto lo extraes de una BD con utf8 y usas (PHP 5 >= 5.2.3), probá en tu conexión

Código PHP:
Ver original
  1. $conectar_BDT = mysql_connect($sql_hostname,$sql_login,$sql_password);
  2. mysql_set_charset("utf8",$conectar_BDT);

Suele corregirse todo con eso


Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 17/06/2011, 17:11
 
Fecha de Ingreso: marzo-2007
Mensajes: 340
Antigüedad: 17 años, 8 meses
Puntos: 4
Respuesta: htmlentities con utf-8 antes de almacenar los caracteres en la db.

Cita:
Iniciado por stramin Ver Mensaje
en teoría si tienes tu BD en UTF8 y el HTML también no es necesario que uses htmlentities().

intenta sin htmlentities, y cuentanos como te fué.

funciona perfecto, entonces solo uso strip_tags antes de insertar los datos ? Son ingresados por muchos usuarios. Por eso hacia uso de htmlentities, por seguridad.

Cita:
Iniciado por emprear Ver Mensaje
WebDeveloperZ

Si el texto lo extraes de una BD con utf8 y usas (PHP 5 >= 5.2.3), probá en tu conexión

Código PHP:
Ver original
  1. $conectar_BDT = mysql_connect($sql_hostname,$sql_login,$sql_password);
  2. mysql_set_charset("utf8",$conectar_BDT);

Suele corregirse todo con eso


Saludos
Si, utilizo esa cadena en la conexión.

Lo que no se es si debo utilizar htmlentities o no cuando los usuarios ingresan contenido.

Etiquetas: almacenar, caracteres, htmlentities, utf-8
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 20:22.