Foros del Web » Programando para Internet » PHP »

codificaciones utf8

Estas en el tema de codificaciones utf8 en el foro de PHP en Foros del Web. Hola, Al terminar de programar un web la subi al servidor y la codificacion web no coje los acentos sobre los valores insertados en la ...
  #1 (permalink)  
Antiguo 30/03/2013, 15:43
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 17 años
Puntos: 2
codificaciones utf8

Hola,

Al terminar de programar un web la subi al servidor y la codificacion web no coje los acentos sobre los valores insertados en la db. Lo raro es que si apunto en mi equipo local a la base de datos del servidor se ve bien. Lo que me hace pensar que no es la configuracion de mysql en el servidor ubuntu.

Equipo local
Windows

Servidor web
Ubuntu

configure el apache, php.ini, mysql y el html5 para que funciones con utf-8.
Al comprobar las variables de mysql con el comando show variables like "%character%"; me devuelve todo utf8.

lo configure tal cual esta en esta web
http://www.pedroventura.com/php/prob...-mysql-y-html/

Un saludo
  #2 (permalink)  
Antiguo 30/03/2013, 16:48
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 7 meses
Puntos: 270
Respuesta: codificaciones utf8

Si en el navegador miras la codificación de caracteres de la página, qué está seleccionado?
  #3 (permalink)  
Antiguo 30/03/2013, 17:01
 
Fecha de Ingreso: noviembre-2012
Ubicación: Caracas - Venezuela
Mensajes: 116
Antigüedad: 12 años
Puntos: 1
Respuesta: codificaciones utf8

que servidor web estas usando? ¿Apache?

Puede que sea que en el servidor no está definido UTF-8 como tipo de caracteres por default.

Tienes que ir a httpd.conf y agregar esto:

AddDefaultCharset utf-8
  #4 (permalink)  
Antiguo 30/03/2013, 17:33
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: codificaciones utf8

Normalmente eso se soluciona incluyendo mysql_set_charset en la conexión
Código:
$conectar_BD = mysql_connect($sql_hostname,$sql_login,$sql_password);
$seleccion_BD = mysql_select_db($sql_base,$conectar_BD);
mysql_set_charset("utf8",$conectar_BD); 

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 31/03/2013, 04:45
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 17 años
Puntos: 2
Respuesta: codificaciones utf8

Buenas,

Estoy desesperado lo probe todo y nada.

Mi configuracion:

Apache:

Modifique el archivo /etc/apache2/conf.d/charset
AddDefaultCharset utf-8

php5

archivo modificado /etc/php.ini
default_charset = "utf-8"

mysql
archivo modificado /etc/mysql/my.cnf

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_coonect='SET collation_connection = utf8_general_ci'
init_coonect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_general_ci

Al comprobar las variables de mysql con el comando show variables like "%character%"; me devuelve todo utf8.

html5:
<meta charset="utf-8">

Crear y guardar los archivos en utf8
guardo los archivos en utf8

Al comprobar la respuesta del http header esta me la devuelve content-type text/html; charset=utf8

conexiones mysql
mysql_set_charset("utf8",$conectar_BD);

como puede comprobar todo es correcto, que es lo que puede estar mal???
como comente antes hay dos cosas raras.
1. si inserto el nombre del usuario con acento, cuando printo por pantalla la variable que contiene el nombre desde la variable session['nombre'] se ve bien pero cuando lo hago desde el objeto se ve mal.

2. Como comente antes, si la consulta de la bd del servidor la hago en mi equipo local se ve bien los datos pero si lo hago desde el mismo servidor no.
  #6 (permalink)  
Antiguo 31/03/2013, 09:34
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: codificaciones utf8

Voy a preguntar algo un poco obvio, pero por ahi se te pasó, estás seguro que con tu editor de texto guardaste todos los archivos de la aplicación con utf-8 (sin BOM preferentemente)? A veces me ha pasado tambien que hago los archivo en local los guardo en utf-8, pero por ahi hago alguna edición con desde el mismo ftp ó filemanager del Cpanel y me la cambia

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 31/03/2013, 09:54
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 17 años
Puntos: 2
Respuesta: codificaciones utf8

Cita:
Iniciado por emprear Ver Mensaje
Voy a preguntar algo un poco obvio, pero por ahi se te pasó, estás seguro que con tu editor de texto guardaste todos los archivos de la aplicación con utf-8 (sin BOM preferentemente)? A veces me ha pasado tambien que hago los archivo en local los guardo en utf-8, pero por ahi hago alguna edición con desde el mismo ftp ó filemanager del Cpanel y me la cambia

Saludos
si los revise uno por uno y están todos en utf-8 (sin BOM ).
  #8 (permalink)  
Antiguo 31/03/2013, 10:01
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: codificaciones utf8

Es posible ver una url del trabajo, para revisar algun header extraño.
Dos cosas extras, un poco redundantes a esta altura, pero no estarían de más

al inicio de tus php
Cita:
header("Content-Type: text/html;charset=utf-8");
en .htaccess

Cita:
AddCharset utf-8 .php .js .css .html
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #9 (permalink)  
Antiguo 31/03/2013, 10:39
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 17 años
Puntos: 2
Respuesta: codificaciones utf8

Cita:
Iniciado por emprear Ver Mensaje
Es posible ver una url del trabajo, para revisar algun header extraño.
Dos cosas extras, un poco redundantes a esta altura, pero no estarían de más

al inicio de tus php


en .htaccess



Saludos
Buenas,

Probé ambas cosas y continua sin funcionar. Puede ser que se tenga que configurar algo del sistema ubuntu???
  #10 (permalink)  
Antiguo 31/03/2013, 10:46
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: codificaciones utf8

Probáste de editar algún contenido de la bd, a ver si trás la edición se sigue viendo mal?
Ya muchas cosas no se me ocurren, provisoriamente la solución podría pasar por hacer cosas como
htmlentities($cadena);
utf8_encode($cadena);
utf8_decode($cadena);
pero, repito, como algo provisorio

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #11 (permalink)  
Antiguo 31/03/2013, 11:06
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 17 años
Puntos: 2
Respuesta: codificaciones utf8

Cita:
Iniciado por emprear Ver Mensaje
Probáste de editar algún contenido de la bd, a ver si trás la edición se sigue viendo mal?
Ya muchas cosas no se me ocurren, provisoriamente la solución podría pasar por hacer cosas como
htmlentities($cadena);
utf8_encode($cadena);
utf8_decode($cadena);
pero, repito, como algo provisorio

Saludos
si tenes razón, es la funcion htmlentities(). mis preguntas:
1. Por qué pasa esto?
2. Por qué en local no ocurre lo mismo si esta la función y en el servidor si??
3. Si no puedo utilizar esta función cual es la alternativa.
  #12 (permalink)  
Antiguo 31/03/2013, 11:58
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: codificaciones utf8

Cita:
Iniciado por Blashak Ver Mensaje
si tenes razón, es la funcion htmlentities(). mis preguntas:
1. Por qué pasa esto?
2. Por qué en local no ocurre lo mismo si esta la función y en el servidor si??
3. Si no puedo utilizar esta función cual es la alternativa.
Ese es justamente el problema, después de todo lo que has probado, no lo sé. Habríaque tener acceso a todo para verificarlo.
Yo también trabajo en local en windows y luego subo al server (siempre linux), como los servers remotos no son siempre los mismos (distintas versiones de php mysql apache, etc) a veces hay que hacer algunos de los ajustes que vos hiciste, y se corrije el defecto. En casi todos con

Código:
mysql_set_charset("utf8",$conectar_BD);
lo arreglo
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #13 (permalink)  
Antiguo 31/03/2013, 15:37
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 17 años
Puntos: 2
Respuesta: codificaciones utf8

Cita:
Iniciado por emprear Ver Mensaje
Ese es justamente el problema, después de todo lo que has probado, no lo sé. Habríaque tener acceso a todo para verificarlo.
Yo también trabajo en local en windows y luego subo al server (siempre linux), como los servers remotos no son siempre los mismos (distintas versiones de php mysql apache, etc) a veces hay que hacer algunos de los ajustes que vos hiciste, y se corrije el defecto. En casi todos con

Código:
mysql_set_charset("utf8",$conectar_BD);
lo arreglo
Saludos
El problema esta en que la funcion htmlentities por defecto convierte por defecto en ISO-8859-1, cambiando a utf-8 me funciono.
Mi duda es: el segundo parametro tengo que poner ENT_HTML5 o ENT_COMPAT??
  #14 (permalink)  
Antiguo 31/03/2013, 15:42
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: codificaciones utf8

yo la usé siempre sin parámetros, revisá el manual de php. aunque en tu caso creo que no los necesites ya que solo estás convirtiendo la cadena de un registro
SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: html, mysql, sql, variables
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 22:13.