Image

Base de conocimientos → Especificación de codificación forzada en PHP al conectarse a una base de datos MariaDB

[Guiones]
Fecha de publicación: 26.12.2024

Por defecto, en todos los planes de alojamiento se utiliza la codificación utf8mb4 para las conexiones a bases de datos. En casos raros, cuando un sitio web fue desarrollado hace mucho tiempo, la codificación puede mostrarse incorrectamente.

En lugar de letras normales, verá los llamados "kryakoziabry", símbolos que se asemejan a jeroglíficos de máquina. Esto ocurre porque la base de datos y todas sus tablas están en una codificación diferente a utf8mb4. Mientras tanto, todos los sitios web antiguos se desarrollaron utilizando la codificación Windows-1251.

Para corregir la visualización incorrecta, debe especificar forzosamente la codificación de la conexión a la base de datos en su CMS.

Necesita abrir el archivo de configuración de PHP y después de las líneas que especifican el nombre, el inicio de sesión y la contraseña de la conexión a la base de datos, agregue la siguiente línea:

ini_set('default_charset', 'Windows-1251');

Esta configuración especifica forzosamente la codificación de la conexión.

La versión final del archivo de configuración debería verse algo así:

...
$hostname_dbconn = "localhost";
$database_dbconn = "DATABASE-NAME";
$username_dbconn = "DATABASE-USER";
$password_dbconn = "PASSWORD";

ini_set('default_charset', 'Windows-1251');
...

Ahora, actualice la página usando la combinación de teclas Ctrl + F5 (limpiando la caché del navegador): la visualización de la codificación del sitio ahora debería funcionar correctamente.

Para asegurarse de qué codificación está utilizando el sitio, puede presionar la combinación de teclas Ctrl + u en el navegador. En la pestaña abierta, al comienzo del código HTML, encuentre una línea como:

<meta http-equiv="content-type" content="text/html; charset=windows-1251" />




Sin comentarios aún