mysql的utf8字符问题

我将所有字符集都设置为“utf8”,我将所有排序规则(字段排序规则)设置为数据库中的utf8_general_ci ,然后将此代码添加到connect.php

mysql_set_charset('utf8',$connect);
mysql_query("SET NAMES 'utf8'");

虽然一切都是utf,但当我运行这个查询时:

"SELECT * FROM titles WHERE title='toruń'"

结果:返回“ toruń ”和“ torun ”,它的不同的话。

所以你怎么看?
问题是什么?

谢谢!

编辑:

CREATE TABLE IF NOT EXISTS titles

id int(11)NOT NULL AUTO_INCREMENT,
title varchar(255)NOT NULL,
PRIMARY KEY( id ),
KEY titletitle ),

)ENGINE = MyISAM DEFAULT CHARSET = utf8 AUTO_INCREMENT = 37;


问题在于,您选择的排序规则旨在忽略该特定口音(并且通常很可能是口音)。

如果您希望存储特定的语言而不是多种不同的语言,请尝试使用utf8_(language)_ci (如果该语言不存在,可能会有另一种与您的语言相似的语言)。 否则,您可以尝试使用Unicode排序算法的utf8_unicode_ci ,但我不确定是否有这种区别。

你也可以使用utf8_bin ,它保证认为它们是不同的,但是这是以丢失大小写不敏感性为代价的,这很可能更糟糕。

话虽如此,但这不一定是件坏事:通过忽略口音,搜索将更加灵活,并且更容易用于无法输入特定字符的人。


尝试使用utf8_encode。


你想要utf8_bin,* _ci不区分大小写,所以重音符号被视为常规字母

链接地址: http://www.djcxy.com/p/68777.html

上一篇: mysql utf8 character problem

下一篇: Spring Data Neo4J Database Connection