一尘不染

如何使MySQL正确处理UTF-8

mysql

昨天我一个问题的回答之一是建议我确保我的数据库可以正确处理UTF-8字符。我该如何使用MySQL?


阅读 287

收藏
2020-05-17

共1个答案

一尘不染

更新:

简短答案-您几乎应该始终使用utf8mb4字符集和utf8mb4_unicode_ci排序规则。

更改数据库:

ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

看到:

原始答案:

MySQL 4.1及更高版本具有默认字符集UTF-8。您可以在验证这个my.cnf文件,记得设置 两个 客户端和服务器(default- character-setcharacter-set-server)。

如果您希望将现有数据转换为UTF-8,请转储数据库,然后将其作为UTF-8导入,确保:

  • SET NAMES utf8在查询/插入数据库之前使用
  • DEFAULT CHARSET=utf8在创建新表时使用
  • 此时,您的MySQL客户端和服务器应位于UTF-8中(请参阅参考资料my.cnf)。请记住,您使用的任何语言(例如PHP)也必须是UTF-8。某些版本的PHP将使用他们自己的MySQL客户端库,该客户端库可能不支持UTF-8。

如果要迁移现有数据,请记住先备份!当事情没有按计划进行时,可能会发生很多奇怪的数据砍伐事件!

一些资源:

2020-05-17