En este post voy a mostrar cómo solucioné un error que me estaba fastidiando demasiado y que tenía tiempo que no me sucedía.
Resulta que al estar trayendo datos de una base de datos con MySQL y PHP se mostraban caracteres raros con signos de interrogación cuyo char code es 65535:
Como se puede apreciar en la imagen, no muestra letras con acento y al usar json_encode tampoco devuelve nada.
Cabe mencionar que en el head
de mi HTML todo estaba correcto con el meta:
<meta charset="UTF-8">
Y el charset de mi base de datos con mi tabla ya lo había cambiado desde utf8_spanish_ci
a otros. Ya estaba enloqueciendo hasta que dije:
¿Cómo es que en otros proyectos esto no me pasa?
Así que revisé mi plantilla en GitHub y afortunadamente ahí estaba la respuesta:
SET NAMES 'utf8';
No sé cómo funciona ni de qué se trata, pero antes de eso tenía mi PDO
así:
<?php
$bd = new PDO('mysql:host=localhost;dbname=' . $nombre_base_de_datos, $usuario, $contraseña);
return $bd;
Después lo hice así:
<?php
$bd = new PDO('mysql:host=localhost;dbname=' . $nombre_base_de_datos, $usuario, $contraseña);
$bd->query("SET NAMES 'utf8'");
return $bd;
¡Magia pura! ahora sí funcionaba:
Si ves el botón un poco raro es porque estoy depurando el objeto con json_encode
. El punto es que ahora sí funciona.
Por cierto, si quieres, puedes ver un tutorial de PHP con PDO y varios motores de búsqueda.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.
Ver comentarios
Genial, tremendo dolor de cabeza ya aliviado. Gracias
En todos mis proyectos tocaba pelearme con los dichosos carácteres, que si ISO, UTF, formato BBDD, ficheros .... todo aguantándose con pinzas. Migro mi proyecto más grande de servidor y otra vez con los problemas de carácteres ... hasta que llegué aquí :)
Gracias! Me salvaste, me estaba pasando exactamente eso. Magia pura!