Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como fazer o MySQL lidar com UTF-8 corretamente


Atualização:

Resposta curta - Você quase sempre deve usar o utf8mb4 conjunto de caracteres e utf8mb4_unicode_ci agrupamento.

Para alterar o banco de dados:
ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Ver:

Resposta original:

MySQL 4.1 e superior tem um conjunto de caracteres padrão de UTF-8. Você pode verificar isso em seu my.cnf arquivo, lembre-se de definir ambos cliente e servidor (default-character-set e character-set-server ).

Se você tiver dados existentes que deseja converter para UTF-8, despeje seu banco de dados e importe-o de volta como UTF-8, certificando-se de:
  • use SET NAMES utf8 antes de consultar/inserir no banco de dados
  • use DEFAULT CHARSET=utf8 ao criar novas tabelas
  • neste ponto, seu cliente e servidor MySQL devem estar em UTF-8 (consulte my.cnf ). lembre-se de que todas as linguagens que você usa (como PHP) também devem ser UTF-8. Algumas versões do PHP usarão sua própria biblioteca cliente MySQL, que pode não estar ciente de UTF-8.

Se você deseja migrar os dados existentes, lembre-se de fazer backup primeiro! Muitos cortes estranhos de dados podem acontecer quando as coisas não saem como planejado!

Alguns recursos: