Foros del Web » Programando para Internet » PHP »

Confusión con el encoding

Estas en el tema de Confusión con el encoding en el foro de PHP en Foros del Web. Hola a todos. He estado batallando con el encoding utf-8, latin_swedish, etc. mi duda es: ¿Cuál es la forma correcta de tener mi base de ...
  #1 (permalink)  
Antiguo 22/09/2009, 21:35
Avatar de Arekuzu  
Fecha de Ingreso: junio-2007
Ubicación: Irk
Mensajes: 40
Antigüedad: 16 años, 9 meses
Puntos: 0
Confusión con el encoding

Hola a todos.

He estado batallando con el encoding utf-8, latin_swedish, etc. mi duda es: ¿Cuál es la forma correcta de tener mi base de datos y mis archivos .php ?

Ejemplo: ahorita mis tablas son latin_swedish_ci, mi documento comienza así:

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es-MX" lang="es-MX">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

y me vuelve loco que algunas páginas les pone las ñ's y los acentos bien y a otras no, intenté guardando el .php en UTF-8 en vez de ANSI pero unas cosas sí las hace con acentos y ñ's bien y otras no (lo que trae de la base de datos no por ejemplo).

¿Cuál es el encoding correcto, utf8_bin ? Es que hay tantos utf y latin que no sé exactamente cuál es el bueno :s

Y otra duda, es recomendable usar siempre &aacute; &ntilde; , etc? O puedo usar acentos áéíóú ñ directamente con el encoding correcto? O tengo que pasar todo por filtros de html_entities() o algo así?

Gracias de antemano!
  #2 (permalink)  
Antiguo 22/09/2009, 22:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Confusión con el encoding

la codificación debe ser UTF-8 en general... osea, utf8_general (o algo así)

y si, es recomendable siempre utilizar entidades &aacute;, etc, etc..

de esta forma, sin importar la codificación de BD/PHP/HTML siempre vamos a obtener los caracteres como debe ser, sin problemas...

por cierto, si recibes un acento desde formulario, o vía manual... es conveniente codificar sus entidades, suerte!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 22/09/2009, 23:42
Avatar de Arekuzu  
Fecha de Ingreso: junio-2007
Ubicación: Irk
Mensajes: 40
Antigüedad: 16 años, 9 meses
Puntos: 0
Muchas gracias!

Con desplegarlo ya no tengo problema convierto á a &aacute; y ya, pero quiero que en la base de datos el acento se guarde como acento, y lo está guardando como Gutiérrez por ejemplo. Lo raro es que en la textbox sí lo despliega bien, a la hora de entrar en MySQL es cuando se "corrompe". La columna está en utf8_general_ci , el .php está en UTF-8 y el charset del html es UTF-8, no entiendo :( He visto bases de datos de wordpress y ahí guardan con todo y acentos, no guardan &ntilde ni é .

Gracias de nuevo

Pues ya medio lo arreglé, más por las malas que por las buenas, pero me sirvió. Cambié mi codificación debajo del DOCTYPE a ISO-8859-1 en vez de UTF-8, desplegando todo con &aacute 's y &ntilde 's no hay problema hacia dentro de la base de datos que es lo que me preocupaba (porque un usuario no va a estar pensando "hmm será ISO-8859-1 o UTF-8" :P).

Cualquier sugerencia para mantenerme con todo UTF-8 (y funcional) sigue siendo bienvenida, gracias :)

Última edición por GatorV; 23/09/2009 a las 09:51
  #4 (permalink)  
Antiguo 23/09/2009, 18:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Confusión con el encoding

como estas viendo la base de datos??

bueno, si estas viendo Gutiérrez en tu phpmyadmin olvidalo, solo ahí se ve así... y no importa, lo importante es que tu no tengas problemas al tratar la información e imprimirla...


suerte!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 24/09/2009, 16:10
Avatar de Arekuzu  
Fecha de Ingreso: junio-2007
Ubicación: Irk
Mensajes: 40
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Confusión con el encoding

Cita:
Iniciado por pateketrueke Ver Mensaje
como estas viendo la base de datos??

bueno, si estas viendo Gutiérrez en tu phpmyadmin olvidalo, solo ahí se ve así... y no importa, lo importante es que tu no tengas problemas al tratar la información e imprimirla...


suerte!!
Lo que pasa es que en el registro recién editado se ve Gutiérrez y en otros registros 'viejos' se ve Hernández (veo el acento), en phpMyAdmin :)
  #6 (permalink)  
Antiguo 24/09/2009, 17:36
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Confusión con el encoding

Como te dijo Pateke, tienes que usar en toda la programación UTF-8, header, meta, base de datos y los archivos de PHP debes convertirlos en UTF-8 without BOM. En la base de datos debes usar utf8_general_ci (esa es la parte de algo así que menciona pateke).
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
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:27.