【问题标题】:What should be the correct MySql collation store in this case?在这种情况下,正确的 MySql 排序规则存储应该是什么?
【发布时间】:2011-11-23 20:39:32
【问题描述】:

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

一些字符串有单引号,然后像这样存储:

人民的

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

我尝试了以下没有运气....

utf8_general_ci

latin1_swedish_ci

【问题讨论】:

标签: mysql unicode collation


【解决方案1】:

您在哪里设置排序规则?您应该在三个地方使用 UTF-8:

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

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

  3. 在您的输出中。例如,如果生成网页,则使用 Content-Type: text/html;charset=utf-8 标头/元。

可以通过始终使用 Latin-1 将字符串“People's”存储为 UTF-8-hidden-in-Latin-1 “People’s”,因为您仍然会得到与您输入的字节相同。但这样您就不会从非 ASCII 字符的排序或不区分大小写的比较中获得合理的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-14
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 2013-04-23
    • 1970-01-01
    相关资源
    最近更新 更多