我目前正在开发一个包含日语和英语字符串的mysql数据库。
当前整理: utf8_general_ci。
我必须使用LIKE%'japaneseWordHere'%对字符串中的日语单词进行查询。目前它与utf8_general_ci几乎没问题,但有时它会跳过一条记录,因为我认为,前一个/前一个字符未正确存储在utf8_general_ci中。
我发现utf8_general_ci有点老了,而且学到了很多东西:
我正在做一些阅读,但无法找到一个好的答案。
如果有人使用日语myslq数据库或知道什么是最好的人,那么欢迎任何回复。
我应该从utf8_general_ci更改为 utf8_unicode_ci 还是 utf8mb4_unicode_ci ?
答案 0 :(得分:1)
<强> 1。在utf8_general_ci和utf8_unicode_ci之间
UTF-8是支持Unicode字符集的编码 几乎是世界上所有的语言。
唯一的区别在于对结果进行排序,不同的字母 在其他语言中可能会有不同的顺序。另外,比较 a ä在另一种排序规则中可能会有不同的行为。
<强> 2。在utf8mb4_unicode_ci和utf8_unicode_ci之间
对于BMP字符,utf8和utf8mb4具有相同的存储空间 特征:相同的代码值,相同的编码,相同的长度
对于补充字符,utf8根本无法存储字符, 而utf8mb4需要四个字节来存储它。因为utf8无法存储 这个角色,你没有任何补充字符 utf8列,你不必担心转换字符或 从旧版本的MySQL升级utf8数据时丢失数据。