Foros del Web » Creando para Internet » HTML »

Por que UTF-8 no me funciona bien ?

Estas en el tema de Por que UTF-8 no me funciona bien ? en el foro de HTML en Foros del Web. hola, he estado leyendo bastante sobre el tema de la presentación de caracteres, y todo lo que tengo ya lo puse en UTF-8: -La base ...
  #1 (permalink)  
Antiguo 19/05/2010, 11:32
Avatar de leac3  
Fecha de Ingreso: abril-2007
Ubicación: Valencia, pero mi mente y corazon estan en San Francisco.
Mensajes: 147
Antigüedad: 17 años
Puntos: 4
Exclamación Por que UTF-8 no me funciona bien ?

hola, he estado leyendo bastante sobre el tema de la presentación de caracteres, y todo lo que tengo ya lo puse en UTF-8:
-La base de datos esta en ut8_unicode_ci y el otro valor también esta en utf-8, no me acuerdo que es.
-El archivo .php que lee la base de datos está grabado como Unicode UTF-8.
-En los metatags de ese archivo especifico que el charset debe ser utf-8.

Y aun así, cuando mando a imprimir con este archivo .php el contenido de mysql_result(), los acentos no se imprimen bien; debo mandarlo a imprimir con la función utf8_encode() de php para que aparezca bien el texto con sus acentos.

Mi pregunta es, Si tengo todo mi universo en UTF-8 ¿por qué debo usar la función utf8_encode para que todo funcione como debería?

Gracias de antemano !!

P.D.: Puse este tema en esta categoría porque aún cuando conlleva algo de programación, sus bases con sobre HTML.
  #2 (permalink)  
Antiguo 19/05/2010, 11:50
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: Por que UTF-8 no me funciona bien ?

Trataste ingresar el header, es decir
Código PHP:
Ver original
  1. header('Content-type: text/html; charset=utf-8');
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 19/05/2010, 14:18
Avatar de leac3  
Fecha de Ingreso: abril-2007
Ubicación: Valencia, pero mi mente y corazon estan en San Francisco.
Mensajes: 147
Antigüedad: 17 años
Puntos: 4
Respuesta: Por que UTF-8 no me funciona bien ?

si; así comienzan todos mis archivos:

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

segun el W3 como estoy especificando que voy a trabajar como XHTML, la etiqueta http-equiv debo terminarla con un />
  #4 (permalink)  
Antiguo 19/05/2010, 14:37
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: Por que UTF-8 no me funciona bien ?

No, me refiero en PHP indica un header como te indiqué.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 19/05/2010, 15:52
Avatar de leac3  
Fecha de Ingreso: abril-2007
Ubicación: Valencia, pero mi mente y corazon estan en San Francisco.
Mensajes: 147
Antigüedad: 17 años
Puntos: 4
Respuesta: Por que UTF-8 no me funciona bien ?

voy a hacer la prueba.
  #6 (permalink)  
Antiguo 01/06/2010, 12:27
Avatar de leac3  
Fecha de Ingreso: abril-2007
Ubicación: Valencia, pero mi mente y corazon estan en San Francisco.
Mensajes: 147
Antigüedad: 17 años
Puntos: 4
Respuesta: Por que UTF-8 no me funciona bien ?

aja, volvi, estuve full ocupado con algo; volviendo a este tema, hice la prueba que me recomendastes: tengo el archivo grabado como utf8, los metatags indican utf8 tambien, y adicionalmente puse en la primera linea de todo el .php la linea de codigo que me recomendastes:
Código PHP:
Ver original
  1. header('Content-type: text/html; charset=utf-8');

El texto me lo escribe bien sin problemas, con sus respectivos acentos, pero los acentos contenidos en lo que imprimo desde la base de datos con mysql_result, no se muestran bien.

Ponga o no ese header, el resultado es el mismo.

Osea, grabar el archivo en utf8 y poner el metatag en utf8, permiten imprimir bien los acentos a nivel de HTML asi como los mensajes impresos con ECHO en PHP. Pero los acentos dentro de los datos extraidos con mysql_result no se imprimen bien, hay que ponerles adicionalmente la funcion utf8_encode(), lo cual no deberia de ser si ya mi base de datos tiene lo siguiente:
MySQL charset: UTF-8 Unicode (utf8)
MySQL connection collation: utf8_unicode_ci

Última edición por leac3; 01/06/2010 a las 12:40
  #7 (permalink)  
Antiguo 01/06/2010, 15:40
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: Por que UTF-8 no me funciona bien ?

Trata de usar utf8_general_ci. También haz varias pruebas, quitando el meta pero dejando el header, o viceversa, etc. Haz diferentes pruebas.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 02/06/2010, 11:24
Avatar de leac3  
Fecha de Ingreso: abril-2007
Ubicación: Valencia, pero mi mente y corazon estan en San Francisco.
Mensajes: 147
Antigüedad: 17 años
Puntos: 4
Respuesta: Por que UTF-8 no me funciona bien ?

lo acabo de probar asi y tampoco me resulta, tambien me puse a leer cual diferencia hay entre el utf8_general_ci y el utf8_unicode_ci, y resulta que el general es una version limitada del unicode.
  #9 (permalink)  
Antiguo 02/06/2010, 14:31
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: Por que UTF-8 no me funciona bien ?

Por lo general el navegador que me da problemas para este tipo de situaciones es Internet Explorer. ¿El archivo te aseguraste que esté como UTF-8 sin BOM?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #10 (permalink)  
Antiguo 02/06/2010, 15:22
Avatar de leac3  
Fecha de Ingreso: abril-2007
Ubicación: Valencia, pero mi mente y corazon estan en San Francisco.
Mensajes: 147
Antigüedad: 17 años
Puntos: 4
Respuesta: Por que UTF-8 no me funciona bien ?

yo lo estoy probando en firefox; si, esta como dices, no sabia de eso pero está asi como dices. Solucioné el problema de la siguiente forma: Despues de hacer la conexion con mysql_connect, ejecuto la funcion de PHP mysql_set_charset.
Código PHP:
Ver original
  1. @ $comm1=mysql_connect($server1,$login1,$pwd1);
  2. mysql_set_charset('utf8', $comm1);

De esta forma no tengo que estar usando el utf8_encode cada vez que mando a imprimir algo con mysql_result. Segun lei en otro foro (o algo que se le parece a uno), alguien tenia exactamente el mismo problema que yo, y otro mas explicó que eso se debe a que el server no esta enviando la informacion como utf-8 sino como iso, aunque es extraño porque en el phpmyadmin como ya escribí antes, dice utf-8 por todos lados, incluso en cada campo de las tablas que contiene la BD.


Etiquetas: utf
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 21:02.