Foros del Web » Programando para Internet » PHP »

Utilizar codificación UTF-8 en php

Estas en el tema de Utilizar codificación UTF-8 en php en el foro de PHP en Foros del Web. En mi aplicación de PHP y MYSQL he realizado todos los cambios en la DDBB para que el código sea codificado mediante UTF-8. También he ...
  #1 (permalink)  
Antiguo 14/06/2010, 07:44
 
Fecha de Ingreso: marzo-2008
Mensajes: 220
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Utilizar codificación UTF-8 en php

En mi aplicación de PHP y MYSQL he realizado todos los cambios en la DDBB para que el código sea codificado mediante UTF-8. También he introducido las cabeceras en los scripts para realizar dicha codificación:

Código HTML:
Ver original
  1. <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />

Pero hay una cosa que no entiendo cuando muestro la info por pantalla: Si ya esta codificado a utf-8 previa inserción a la DDBB, la codificacion en la web es inestable ( a veces funciona y otras no ). Para que funcione siempre he tenido que añadir:

Código PHP:
Ver original
  1. mysql_query("SET NAMES 'utf8'");

...antes de hacer la consulta y así funciona!!

Pero la pregunta es: ¿Si la codificación ya está hecha en la DDBB, por que hay que hacerla otra vez al imprimir los datos??

Grácias
  #2 (permalink)  
Antiguo 14/06/2010, 08:20
 
Fecha de Ingreso: octubre-2008
Mensajes: 365
Antigüedad: 15 años, 6 meses
Puntos: 12
Respuesta: Utilizar codificación UTF-8 en php

La codificación en HTML tendría que estar igual que con la BD. puede que tu html use un idioma y tu bd otra

Salu2
__________________
No hay mail que por internet no venga
  #3 (permalink)  
Antiguo 14/06/2010, 08:45
 
Fecha de Ingreso: marzo-2008
Mensajes: 220
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Utilizar codificación UTF-8 en php

Cita:
Iniciado por cosmo_ Ver Mensaje
La codificación en HTML tendría que estar igual que con la BD. puede que tu html use un idioma y tu bd otra
Ahora he introducido el meta siguiente:

Código HTML:
Ver original
  1. <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
  2. <meta http-equiv="Content-Language" content="es" />

y en la DDBB tengo la siguiente configuración:

Código MySQL:
Ver original
  1. Variable_name   Value
  2. character_set_client    utf8
  3. character_set_connection    utf8
  4. character_set_database  utf8
  5. character_set_filesystem    binary
  6. character_set_results   utf8
  7. character_set_server    utf8
  8. character_set_system    utf8
  9. character_sets_dir  C:\xampp\mysql\share\charsets\

La codificación para la DDBB es CHARSET=utf-8

Pero continua pasando lo mismo. ¿Es necesario siempre el
Código PHP:
Ver original
  1. mysql_query('set name utf-8')
?

Grácias
  #4 (permalink)  
Antiguo 14/06/2010, 08:47
 
Fecha de Ingreso: octubre-2008
Mensajes: 365
Antigüedad: 15 años, 6 meses
Puntos: 12
Respuesta: Utilizar codificación UTF-8 en php

y tus tablas también están en utf-8 ??

Salu2
__________________
No hay mail que por internet no venga
  #5 (permalink)  
Antiguo 14/06/2010, 09:19
 
Fecha de Ingreso: marzo-2008
Mensajes: 220
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Utilizar codificación UTF-8 en php

Si, está todo.

Por eso te digo si en principio es necesario el SET NAME UTF-8???

Grácias
  #6 (permalink)  
Antiguo 14/06/2010, 09:44
 
Fecha de Ingreso: octubre-2008
Mensajes: 365
Antigüedad: 15 años, 6 meses
Puntos: 12
Respuesta: Utilizar codificación UTF-8 en php

A mi me funciona bien sin el SET NAME UTF-8
__________________
No hay mail que por internet no venga
  #7 (permalink)  
Antiguo 14/06/2010, 10:07
 
Fecha de Ingreso: marzo-2008
Mensajes: 220
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Respuesta: Utilizar codificación UTF-8 en php

No se que puede ser!!

Y a ti como te guarda los acentos en la DDBB? Y la hoa de visualizar javascript no visualiza bien los caracteres!!!!

Grácias
  #8 (permalink)  
Antiguo 14/06/2010, 10:24
 
Fecha de Ingreso: octubre-2008
Mensajes: 365
Antigüedad: 15 años, 6 meses
Puntos: 12
Respuesta: Utilizar codificación UTF-8 en php

edita el archivo PHP con el bloc de notas de windows y en la opción guardar como pon guardar con codificación UTF-8 debe estar con ANSI

Salu2
__________________
No hay mail que por internet no venga
  #9 (permalink)  
Antiguo 14/06/2010, 14:08
 
Fecha de Ingreso: marzo-2008
Mensajes: 220
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Utilizar codificación UTF-8 en php

Cita:
Iniciado por cosmo_ Ver Mensaje
edita el archivo PHP con el bloc de notas de windows y en la opción guardar como pon guardar con codificación UTF-8 debe estar con ANSI
Así si lo codifica bien :)

Pero me da la sensación de que la web es más lenta con este tipo de validación.¿Es posible? ¿A ti te pasa?
  #10 (permalink)  
Antiguo 14/06/2010, 14:26
 
Fecha de Ingreso: octubre-2008
Mensajes: 365
Antigüedad: 15 años, 6 meses
Puntos: 12
Respuesta: Utilizar codificación UTF-8 en php

Debiera ser igual la velocidad, no influye en nada

Salu2
__________________
No hay mail que por internet no venga
  #11 (permalink)  
Antiguo 14/06/2010, 14:43
 
Fecha de Ingreso: marzo-2008
Mensajes: 220
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Utilizar codificación UTF-8 en php

ok. Lo revisaré todo de nuevo a ver...

Por cierto, he leído y comprobado que al enviar la información de un formulario no se conserva la codificación en utf-8, por mucho que tengas configurada la página a dicha codificación. Por tanto, antes de introducir los datos en la DDBB se tiene que realizar la conversión:

Código PHP:
Ver original
  1. function espanol($texto) //REPARA CUALQUIER TEXTO A UTF-8
  2. {
  3. $texto = htmlentities($texto , ENT_QUOTES); //No permite codigo HTML
  4. $texto = str_replace("\r","<br />",$texto); //Asignar codigo espacios
  5. $texto = utf8_encode($texto); //ENCODE A UTF-8
  6. $texto = iconv("ISO-8859-1" , "UTF-8", $texto); // Convierte ISO-8859-1 UTF-8
  7. return $texto;
  8. }


¿Realizas dicho proceso?
  #12 (permalink)  
Antiguo 14/06/2010, 14:51
 
Fecha de Ingreso: octubre-2008
Mensajes: 365
Antigüedad: 15 años, 6 meses
Puntos: 12
Respuesta: Utilizar codificación UTF-8 en php

no para nada y si pruebas con algún otro servidor apache por ej. phptriad que te trae el apache php y mysql.

Salu2
__________________
No hay mail que por internet no venga
  #13 (permalink)  
Antiguo 14/06/2010, 15:06
 
Fecha de Ingreso: marzo-2008
Mensajes: 220
Antigüedad: 16 años, 1 mes
Puntos: 0
De momento lo dejaré así...

Pero por tener una idea, en tu base de datos como seguardarían estas palabras

"contraseña comunicación"

-> "contraseña comunicación" Así?

-> "contrase&ntilde; comunicaci&oacute;n" o Así?

Un saludo y grácias

"contraseña comunicación"

Última edición por GatorV; 14/06/2010 a las 21:26

Etiquetas: utf, utilidades
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 02:22.