更新:
简短答案-您几乎应该始终使用
utf8mb4字符集和
utf8mb4_unipre_ci排序规则。
更改数据库:
ALTER DATAbase dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unipre_ci;
看到:
亚伦对此答案的评论如何使MySQL正确处理UTF-8
utf8_general_ci和utf8_unipre_ci有什么区别
转换指南:https : //dev.mysql.com/doc/refman/5.5/en/charset-unipre-conversion.html
原始答案:
MySQL 4.1及更高版本具有默认字符集UTF-8。您可以在验证这个
my.cnf文件,记得设置 两个 客户端和服务器(
default-character-set和
character-set-server)。
如果您希望将现有数据转换为UTF-8,请转储数据库,然后将其作为UTF-8导入,确保:
SET NAMES utf8
在查询/插入数据库之前使用DEFAULT CHARSET=utf8
在创建新表时使用- 此时,您的MySQL客户端和服务器应位于UTF-8中(请参阅参考资料
my.cnf
)。请记住,您使用的任何语言(例如PHP)也必须是UTF-8。某些版本的PHP将使用他们自己的MySQL客户端库,该客户端库可能不支持UTF-8。
如果要迁移现有数据,请记住先备份!当事情没有按计划进行时,可能会发生很多奇怪的数据砍伐事件!
一些资源:
- 完整的UTF-8迁移(cdbaby.com)
- 关于php函数的UTF-8准备情况的文章(请注意,其中一些信息已过时)



