1

우리는 몇백 개의 태그가있는 테이블을 가지고 있습니다. 그들 중 일부는 특수 문자 (스페인어 문자)를 가지고 있습니다. 그리고 이러한 태그 중 일부에는 동일한 문자가 포함될 수 있지만 특수 문자가 있거나없는 동일한 문자열은 포함되지 않을 수 있습니다.SELECT를 수행 할 때 MySQL 특수 문자는 특수 문자없이 다른 결과를 표시합니다.

나를 예를 보여 드리죠 :

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

나는 결과에 "올가의 tañón"가 특정 행을 얻을 기대, 대신 MySQL이 결과로 저를주고있다 :

olga tañón 
olga tañon 
olga tanon 

같은 문자이지만 일부 문자에는 특수 문자 (ñ 및 ó)가 있고 다른 문자는 문자가 아닙니다. 테이블 인코딩은 latin1입니다. 우리는 예제 코드를 레일 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 결과에 반환 된 정확히 문자열을 얻으려면 특수 문자.

감사합니다.

답변

관련 문제