在这种情况下,正确的MySql排序规则存储应该是什么?

时间:2011-11-23 20:39:32

标签: mysql unicode collation

我正在将字符串存储在Mysql数据库中。

有些字符串有单引号,然后按如下方式存储:

People’的

这是存储这些字符串的正确方法还是应该设置不同的mysql排序规则?

我没有运气就试过以下......

utf8_general_ci

latin1_swedish_ci

1 个答案:

答案 0 :(得分:1)

您在哪里设置整理?你应该在三个地方使用UTF-8:

  1. 作为包含字符数据的每一行的排序规则。您可以为表或数据库设置默认排序规则,以便新列选择它,但如果您已有表,则更改其默认排序规则不会更改现有行的排序规则。

  2. 作为应用程序和MySQL之间连接的编码。这可以使用SET NAMES语句手动设置,或者更好地使用适合您环境的API调用(例如PHP中的mysql_set_charset()charset的{​​{1}}参数在Python MySQLdb中。

  3. 输出中的
  4. 。例如,如果使用connect() header / meta。

  5. 生成网页

    可以将字符串“People's”存储为UTF-8-hidden-in-Latin-1“People's”,整个使用Latin-1,因为你仍然会得到你输入的字节数相同。但是这样你就不会从非ASCII字符的排序或不区分大小写的比较中获得明智的结果。