2

我有這樣一段代碼做一個諮詢:波浪號或口音on Rails的3

text = 'pestañas' 
text.split(' ').each do |word| 
    @dictionary = Dictionary.where('spanish_word LIKE ?', "%#{word}%").first 
end 

但是,如果我在調試程序看,我有這樣的諮詢:

Dictionary Load (0.3ms) SELECT `dictionaries`.* FROM `dictionaries` WHERE (spanish_word LIKE '%pestaas%') LIMIT 1 

我有這個問題與ñ,á,é,í,ó,或拉丁字符。我的MySQL DB編碼是UTF-8 Unicode(utf8),Ruby 1.9.2p0

+0

代碼可以在控制檯中找到它嗎?我有一個應用程序,它是UTF8並具有自動完成功能。我粘貼了單詞,檢查了輸出,並且在查詢中包括了顎化符。讓我們看看控制檯是否有助於縮小問題出現的位置 – cgr

+0

是的,我在控制檯中進行了測試,但結果相同 - > Dictionary Load(0.3ms)SELECT'dictionaries'。* FROM'dictionaries' WHERE(spanish_word LIKE' %pestaas%')LIMIT 1該方法是在助手中聲明的,這會導致問題嗎? – utiq

+0

我剛剛在rails/mysql應用程序ruby1.9.2p290中試過這個: '>> Dictionary.where(「title like?」,「%pestañas%」)' 'Dictionary Load(0.2ms)SELECT dictionaries。 *從字典哪裏(標題如'%pestañas%')' 像預期的那樣工作。你確定,你的數據庫AND表和列是utf_general還是utf_general_ci? 你有沒有在你的application.rb'config.encoding =「utf-8」' 還有一些選項ActiveRecord的內部/外部編碼... – stwienert

回答

0

您正在使用哪種MySQL gem?你應該使用ruby-mysql或者mysql2 gem。

有關更多信息,請參閱Reads for Rubyists

+0

我正在使用mysql2 0.2.7 gem – utiq