collat​​ion utf8mb4_unicode_ci 是啥意思

Posted

技术标签:

【中文标题】collat​​ion utf8mb4_unicode_ci 是啥意思【英文标题】:What does collation utf8mb4_unicode_ci meancollat​​ion utf8mb4_unicode_ci 是什么意思 【发布时间】:2016-05-11 21:19:28 【问题描述】:

我正在做一个项目,想实现一个类似于 wordpress 帖子表的帖子表来存储页面内容。

所以我基本上复制了 wp_posts 表,它是长文本,但是我注意到在整理下它有 utf8mb4_unicode_ci

我想知道这意味着什么以及它有什么必要?

【问题讨论】:

您的问题是关于 字符集 utf8mb4 vs utf8 吗?或者关于 unicode_ci 与其他 _collat​​ions 的对比? 【参考方案1】:

utf8mb4_unicode_ci 支持 mysql 数据库中的完整 unicode。

更多信息可以在这里找到https://mathiasbynens.be/notes/mysql-utf8mb4

基本上Unicode中有很多字符不能用utf8存储在表中,从而导致数据丢失。

UTF-8 符号占用 1 到 3 个字节,但有些符号甚至可以占用 4 个字节,并且不受支持 (utf8 - utf8mb4)。

在 wordpress 中,这种对 utf8 排序规则的更改导致某些用户出现问题,主要是因为 utf8mb4_unicode_ci 仅在 MySQL 5.5.3+ 中受支持。

【讨论】:

以上是关于collat​​ion utf8mb4_unicode_ci 是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

mysql容器乱码问题

mysql容器乱码问题

COLLATION 'utf8mb4_general_ci' 对 CHARACTER SET 'binary' 无效

java.sql.SQLException: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_

java.sql.SQLException: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_

mysqlcharset和collation的设置