日语/英语输入的mysql数据库:utf8_unicode_ci或utf8mb4_unicode_ci?

时间:2015-01-19 02:26:52

标签: php mysql

我目前正在开发一个包含日语和英语字符串的mysql数据库。

当前整理: utf8_general_ci。

我必须使用LIKE%'japaneseWordHere'%对字符串中的日语单词进行查询。目前它与utf8_general_ci几乎没问题,但有时它会跳过一条记录,因为我认为,前一个/前一个字符未正确存储在utf8_general_ci中。

我发现utf8_general_ci有点老了,而且学到了很多东西:

  1. utf8_unicode_ci
  2. utf8mb4_unicode_ci
  3. 我正在做一些阅读,但无法找到一个好的答案。

    如果有人使用日语myslq数据库或知道什么是最好的人,那么欢迎任何回复。

    我应该从utf8_general_ci更改为 utf8_unicode_ci 还是 utf8mb4_unicode_ci

1 个答案:

答案 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数据时丢失数据。