0

我在ruby 1.9.2和rails 3.0.9中有一個很常見的麻煩 - 不兼容的字符編碼:UTF-8和ASCII-8BIT異常。 當我使用thinking_sphinx搜索時引發。不兼容的字符編碼:UTF-8和ASCII-8BIT和thinking_sphinx

def result 
    #return page(1).per(1) #no any exceptions 
    return search('').page(1).per(1) #if I use this an exception is raised when i try to render partial 
end 

,則此方法的結果,在部分

render Trademarks.result 

我同時使用ERB和HAML用於(化妝的人使用HTML,而我更喜歡使用HAML),但它是由HAML允許referrence。

我試過魔法評論,default_internal,外部和一些其他的建議,但沒有結果。有任何想法嗎?

+0

只有當我使用trademark.excerpts.something時纔會引發異常。看來,這是問題的原因。當突出顯示詞語時,可能摘錄添加不兼容的符號?我在這裏創建了一個問題https://github.com/freelancing-god/thinking-sphinx/issues/262 –

回答

3

好的,解決方法是使用model_name.excerpts.somethingforce_encoding('utf-8'),因爲它不返回UTF字符串。

+1

它也被固定在'gem'謎語',:git =>'git:// github.com/freelancing-god/riddle.git'中,並且將在下一個TS版本中修復。 –

0

如果通過標準的activerecord查詢返回結果,是否會引發異常?

如果你的數據庫中有無效的utf-8,那麼你的模型字符串屬性的編碼可能與你的視圖編碼衝突。

+0

正如我已經告訴我,AR查詢沒有任何問題。 Trademark.page(1).per(1).to_sql是「SELECT'trademarks'。* FROM'trademarks' LIMIT 1 OFFSET 0」。數據庫是在utf-unicode-ci –

相關問題