我们的列目前已归类为latin1_swedish_ci
,显然,特殊的unicode字符已被删除。我们希望能够接受诸如U+272A ✪
,U+2764 ❤
之类的字符,(请参阅this wikipedia article)等。我倾向于utf8_unicode_ci
,这个校对会处理这些和其他吗?字符?我不关心速度,因为这个列不是索引。
MySQL版本:5.5.28-1
答案 0 :(得分:26)
排序规则是您最不担心的问题,您需要考虑的是列/表/数据库的字符集。整理(管理数据如何比较和排序的规则)只是其中的必然结果。
MySQL支持多个Unicode字符集,utf8
和utf8mb4
是最有趣的。 utf8
支持BMP中的Unicode字符,即所有Unicode的子集。自MySQL 5.5.3起可用的utf8mb4
支持所有的Unicode。
与任何Unicode编码一起使用的归类很可能是xxx_general_ci
或xxx_unicode_ci
。前者是一种独立于语言的通用排序和比较算法,后者是一种更完整的语言独立算法,支持更多Unicode功能(例如将“ß”和“ss”视为等效),但因此也慢了。
请参阅https://dev.mysql.com/doc/refman/5.5/en/charset-unicode-sets.html。