Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] php 5.4 no muestra ecentos y ñ

Estas en el tema de php 5.4 no muestra ecentos y ñ en el foro de PHP en Foros del Web. Hola, Tengo un script en php que me muestra los datos de mysql. En versiones anteriores a php 5.4 me mostraba los resultados correctamente pero ...
  #1 (permalink)  
Antiguo 15/08/2015, 06:33
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 2 meses
Puntos: 0
php 5.4 no muestra ecentos y ñ

Hola,

Tengo un script en php que me muestra los datos de mysql. En versiones anteriores a php 5.4 me mostraba los resultados correctamente pero a partir de php 5.4 estoy tenindo problemas, este es el php:

Código PHP:
<? echo htmlentities($data['nombre']); ?>
en la db lo inserto correctamente mediante:

Código PHP:
mysql_query("SET NAMES 'utf8'"); 
Alguien me puede ayudar?

saludos y gracias.
  #2 (permalink)  
Antiguo 15/08/2015, 06:39
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: php 5.4 no muestra ecentos y ñ

si pruebas con esto por ejemplo:
Código PHP:
Ver original
  1. header('Content-Type: text/html; charset=UTF-8');
o esto:
Código PHP:
Ver original
  1. utf8_decode("Solución útil y apañada a UTF-8");
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 15/08/2015, 07:14
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 10 años, 9 meses
Puntos: 401
Respuesta: php 5.4 no muestra ecentos y ñ

De todas formas.... acostúmbrate a:
Código PHP:
Ver original
  1. <?php
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-
  #4 (permalink)  
Antiguo 15/08/2015, 07:24
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: php 5.4 no muestra ecentos y ñ

Cita:
Iniciado por lauser Ver Mensaje
De todas formas.... acostúmbrate a:
Código PHP:
Ver original
  1. <?php
y a:

Código PHP:
Ver original
  1. mysqli->query("SET NAMES 'utf8'");
__________________
[email protected]
HITCEL
  #5 (permalink)  
Antiguo 15/08/2015, 13:03
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: php 5.4 no muestra ecentos y ñ

Hola xfxstudios, gracias por contestar,

El parámetro charset del encabezado lo tengo configurado con UTF-8:

Código PHP:
Ver original
  1. $headers = "Content-type: text/html; charset=UTF-8";

el cotejamiento de la conexión al servidor y de las tablas de la db: utf8mb4_unicode_ci

Creo que el problema es del apache del servidor, ¿Podría ser?.
  #6 (permalink)  
Antiguo 15/08/2015, 14:06
Avatar de lauser
Moderator Unix/Linux
 
Fecha de Ingreso: julio-2013
Ubicación: Odessa (Ukrania)
Mensajes: 3.278
Antigüedad: 10 años, 9 meses
Puntos: 401
Respuesta: php 5.4 no muestra ecentos y ñ

Cita:
Creo que el problema es del apache del servidor, ¿Podría ser?.
Sería raro en los tiempos que corren, pero si podría ser.
Lo puedes solucionar con:
Código Apache:
Ver original
  1. AddDefaultCharset utf-8
__________________
Los usuarios que te responden, lo hacen altruistamente y sin ánimo de lucro con el único fin de ayudarte. Se paciente y agradecido.
-SOLOLINUX-
  #7 (permalink)  
Antiguo 16/08/2015, 02:45
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: php 5.4 no muestra ecentos y ñ

Bueno, xfxstudios, lauser, gracias por interesaros por este tema.

Al final, indagando por ahí he encontrado la solución, para al que le interese:

En phpMyAdmin el cotejamiento de la conexión al servidor:

utf8_unicode_ci

En phpMyAdmin el cotejamiento de los campos de las tablas:

utf8_unicode_ci

Para insertar caracteres especiales en la db mysql desde php, después de la conexión a la db, añadimos:
Código PHP:
mysql_query("SET NAMES 'utf8'"); 
y para recibir, mostrar los datos extraídos de la db mysql:

Código PHP:
<? echo utf8_encode($data['nombre']); ?>

Bueno, pues eso es todo,

Saludoss

Etiquetas: html, muestra, mysql
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 14:42.