Base de conocimientos

1 000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!

Forzar una codificación al conectarse a una base de datos MySQL

Actualización 04/08/2026

Esta guía le ayudará a solucionar los problemas relacionados con los caracteres especiales (acentos, emojis, etc.) que no se muestran correctamente o aparecen como símbolos, como ??, a menudo debido a una codificación incorrecta al conectarse a MySQL.

 

Introducción

  • Por defecto, MySQL utiliza UTF-8.
  • Los servidores MySQL más recientes suelen estar configurados para utilizar UTF-8 o UTF-8MB4 por defecto.
    • Esto es adecuado para la mayoría de los casos, especialmente para idiomas internacionales y emojis.
  • Consulte también esta otra guía para aprender a evitar problemas de codificación con caracteres no europeos y emojis en sus desarrollos.

 

Definir el conjunto de caracteres predeterminado de MySQL / MariaDB (Servidor Cloud)

Con un Servidor Cloud de Infomaniak, es posible definir el conjunto de caracteres predeterminado (utf8 o utf8mb4):

  1. Haga clic aquí para acceder a la gestión de su producto en el Panel de control de Infomaniak (¿necesita ayuda?).
  2. Haga clic directamente en el nombre asignado al producto correspondiente.
  3. Haga clic en MariaDB en el menú lateral izquierdo.
  4. Elija el conjunto de caracteres predeterminado:
  5. Guarde los cambios en la parte inferior de la página.

 

Forzar una codificación específica (por ejemplo, latin1)

Si necesita trabajar con una base de datos en latin1 (ISO-8859-1), debe alinear explícitamente la codificación al conectarse, según su entorno.

En las ofertas actuales, coloque el siguiente código en un archivo user.ini ubicado en la raíz de su alojamiento:

mysql.connect_charset = "latin1"
mysqli.connect_charset = "latin1"
pdo_mysql.connect_charset = "latin1"

o en PHP (API MySQL):

mysql_query("SET CHARACTER SET latin1");

 

En los planes de alojamiento antiguos, fuerce la conexión MySQL en latin1 a través del archivo .htaccess ubicado en la raíz de su alojamiento:

php_value mysql.connect_charset latin1
php_value mysqli.connect_charset latin1
php_value pdo_mysql.connect_charset latin1

¿Le ha sido útil esta FAQ?