0

Tengo mi base de datos en mysql configurado en utf8_general_ci. Cuando solicito sus datos en una computadora me los muestra correctamente y en otro no. Usando...

echo json_encode(utf8_encode($select));

En la computadora 1 me muestra la palabra CAMIÓN como: CAMIÃN y en la computadora 2 me muestra CAMIÓN en el navegador. Y...

echo json_encode($select);

En la computadora 1 me muestra la palabra CAMIÓN como: CAMIÓN y en la computadora 2 ya no me muestra nada en el navegador.

Intenté también:

echo json_encode(utf8_encode($select), JSON_UNESCAPED_UNICODE);

pero nada.

Por otro lado, la base de datos la creé originalmente en la computadora 1, generé un backup y la pase a la comutadora 2.

  • Cómo tienes seteado los caracteres en la conexión de Php a la base de datos? Debería ser algo así: `mysqli_set_charset($con,"utf8");` – Bicho Jun 03 '20 at 20:59
  • 1
    Intenta agregando justo antes del `echo json_encode(...` este encabezado `header("Content-Type: application/json;charset=utf-8");` y avisanos como te fue. Eso suele suceder debido a que cada navegador tiene su propio `charset` el cual es enviado al hacer la solicitud en los encabezados y normalmente espera una respuesta en dicho `charset` – Marcos Jun 03 '20 at 21:03
  • La explicacion que hace marcos es justo aquello que deberias tener en cuenta a la hora de la codificacion de caracteres, sin embargo tambien vale la pena mencionar que hay ciertas cabeceras que forzosamente deben encontrarse si o si al inicio de todo el codigo, antes de cualquier codigo php como tal, de lo contrario pueden saltarte errores, se considera estandar y adecuado colocar las cabeceras (headers) siempre al inicio del documento PHP, deberias intentar la solucion de marcos creo que podria funcionar. – Riven Jun 03 '20 at 21:43
  • Muchas gracias por sus comentarios, me ayudó a entender mejor esto. Relacioné la respuesta sugerida en otra pregunta. En esa pregunta también encontré la respuesta. – Renzo Andre Condo Miranda Jun 09 '20 at 00:22

0 Answers0