执行SELECT时,MySQL特殊字符显示其他没有特殊字符的结果

时间:2012-03-14 16:38:53

标签: mysql ruby-on-rails character-encoding special-characters

我们有一个包含几百个标签的表格。其中一些有特殊字符(西班牙字符)。其中一些标签可能包含相同的字母,但不包含特殊字符的字符串不完全相同。

让我举个例子:

 select * from tags where name = 'olga tañón';

我希望在结果中得到具有“olgatañón”的特定行,但MySQL会给我一个结果:

 olga tañón
 olga tañon
 olga tanon

请注意,它们是相同的字母,但有些字母具有特殊字符(ñ和ó),而其他字母则没有。表编码是latin1。我们使用的是Rails 3.2和MySQL 5.x

这是一个示例代码

 Tag.where(:name => "olga tañón")
 Tag Load (94.6ms)  SELECT `tags`.* FROM `tags` WHERE `tags`.`name` = 'olga tañón'
 => [#<Tag id: 57502, name: "olga tañón">, #<Tag id: 75642, name: "olga tañon">, #<Tag id: 114622, name: "olga tanon">]

当我运行带有特殊字符的查询时,如果我们想要获得SELECT结果中返回的确切字符串,我们该怎么办。

谢谢!