我的数据库表格字符集和整理分别设置为utf-8
和utf8_general_ci
。我在varchar列中插入了值为'säî kîråñ'
的记录。我有一个独特的列约束。当我尝试插入'sai kiran'时,它会给出重复的条目,指的是旧的插入行'säîkîråñ'。
正如您所看到的,两个字符串中的字符在utf8字符集中完全不同,无法理解为什么它将错误显示为“重复条目”。
我尝试将排序规则更改为utf8_unicode_ci
但没有用。我试着直接插入phpmyadmin以避免编程问题,仍然存在问题。
答案 0 :(得分:1)
如果utf8_general_ci
我认为只有'a' and 'A'
会被视为相同,但是从here我发现即使'a' and 'ä'
也会被视为相同。所以utf8_bin
是对待它们的最终解决方案。不错的学习。
答案 1 :(得分:0)
由于缺少utf8_..._ci_as
,排序规则,您应该将(至少)该列的排序规则更改为utf8_bin
。然后,不是所有这些都相等S=s=Ş=ş=Š=Š=š=š
,它们都将是不同的。特别注意。 {f {1}}和s
在utf8_bin中将是截然不同的。