Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
哪种MySQL排序规则最适合接受所有unicode字符?_Mysql_Collation - Fatal编程技术网

哪种MySQL排序规则最适合接受所有unicode字符?

哪种MySQL排序规则最适合接受所有unicode字符?,mysql,collation,Mysql,Collation,我们的专栏目前被整理成拉丁文和瑞典文,特别的unicode字符显然被删掉了。我们希望能够接受字符,如U+272A✪,U+2764❤,(请参阅)等。我倾向于使用utf8\u unicode\u ci,这种排序规则会处理这些字符和其他字符吗?我不在乎速度,因为这个专栏不是索引 MySQL版本:5.5.28-1排序规则是您最不用担心的,您需要考虑的是列/表/数据库的字符集。排序规则(控制数据如何比较和排序的规则)只是其推论 MySQL支持多种Unicode字符集,utf8和utf8mb4是最有趣的ut

我们的专栏目前被整理成拉丁文和瑞典文,特别的unicode字符显然被删掉了。我们希望能够接受字符,如
U+272A✪
U+2764❤,(请参阅)等。我倾向于使用
utf8\u unicode\u ci
,这种排序规则会处理这些字符和其他字符吗?我不在乎速度,因为这个专栏不是索引

MySQL版本:5.5.28-1

排序规则是您最不用担心的,您需要考虑的是列/表/数据库的字符集。排序规则(控制数据如何比较和排序的规则)只是其推论

MySQL支持多种Unicode字符集,
utf8
utf8mb4
是最有趣的
utf8
支持中的Unicode字符,即所有Unicode字符的子集<代码>utf8mb4
,从MySQL 5.5.3开始提供,支持所有Unicode

与任何Unicode编码一起使用的排序规则很可能是
xxx\u general\u ci
xxx\u Unicode\u ci
。前者是一种独立于语言的通用排序和比较算法,后者是一种更完整的独立于语言的算法,支持更多的Unicode功能(例如,将“ß”和“ss”视为等价物),但因此速度也较慢


请参阅。

Mathias在此处发表文章,但我正好在这里,并将其添加了书签:我运行了此查询:
ALTER TABLE mydb.mytable CHANGE mycolumn mycolumn VARCHAR(500)字符集utf8mb4 COLLATE utf8mb4\u unicode\u ci并且我仍然没有得到正确的值,我是否也必须设置表和数据库字符集?不,只有列具有字符集,如果没有为每列指定其他字符集,则表和数据库字符集仅为默认设置。“你没有得到正确的值”是什么意思?您如何尝试获得正确的值?您需要前后设置正确的连接字符集,包括客户端连接,客户端连接也需要设置为
utf8mb4
。有关详细说明,请参阅。Java应用程序正在更新数据库,我看到的不是特殊的unicode字符,而是一个
。我没有开发Java应用程序,我猜它一定是在逃避字符本身。这太模糊了。:)正如beforelinked文章中所述,编码必须前后正确处理以正确保留字符。问题可能出现在链(web?)Java DB驱动程序DB中的任何位置。如果您不负责Java应用程序,只需确保数据库以正确的编码保存和返回数据。我会将此转发给Java开发人员,看看这是否解决了问题。不过我会给你奖金的(4小时后,当我可以奖励的时候),谢谢你的帮助!