SQL排序规则无效

时间:2017-09-25 08:35:58

标签: php mysql sql utf-8 collation

我正在尝试将一些utf8编码数据插入到mysql数据库中。特殊字符在浏览器中正确显示,但不在我的数据库中。手动将排序规则更改为utf8_unicode_ci并确认“此操作将尝试将数据转换为新排序规则”后,数据将正确显示。但是,如果我使用

创建表
CREATE TABLE IF NOT EXISTS table_name (
  date date NOT NULL,
  searchengine VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  location VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  keyword VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  position INT NOT NULL,
  competition VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
  url VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL    
)

并在创建表后插入数据,即使收集是utf8_unicode_ci,数据仍然无法正确显示。关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:1)

排序规则是一组规则,用于定义如何比较和排序字符串。 MySQL中的每个排序规则都属于一个字符集。每个字符集至少有一个排序规则,大多数都有两个或多个排序规则。归类根据权重对字符进行排序。

utf8mb4_unicode_ci 基于Unicode标准进行排序和比较,可以在各种语言中进行准确排序。