sql >> Base de Datos >  >> RDS >> Mysql

Cómo hacer que MySQL maneje UTF-8 correctamente

Actualización:

Respuesta corta:casi siempre debería usar utf8mb4 juego de caracteres y utf8mb4_unicode_ci colación.

Para modificar la base de datos:

ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Ver:

Respuesta original:

MySQL 4.1 y superior tiene un conjunto de caracteres predeterminado de UTF-8. Puede verificar esto en su my.cnf archivo, recuerde configurar ambos cliente y servidor (default-character-set y character-set-server ).

Si tiene datos existentes que desea convertir a UTF-8, descargue su base de datos y vuelva a importarla como UTF-8 asegurándose de lo siguiente:

  • use SET NAMES utf8 antes de consultar/insertar en la base de datos
  • use DEFAULT CHARSET=utf8 al crear nuevas tablas
  • en este punto, su cliente y servidor MySQL deben estar en UTF-8 (vea my.cnf ). recuerde que cualquier idioma que use (como PHP) también debe ser UTF-8. Algunas versiones de PHP usarán su propia biblioteca de cliente MySQL, que puede no ser compatible con UTF-8.

Si desea migrar los datos existentes, recuerde hacer una copia de seguridad primero. ¡Pueden ocurrir muchos cortes extraños de datos cuando las cosas no salen según lo planeado!

Algunos recursos: