2011-05-22 20 views
3

我收到「無效字節序列UTF-8」的頁面請求(固定鏈接),我不知道爲什麼我也不能複製,但我得到了很多的例外情況如下:無效字節序列上的頁面請求

A ArgumentError occurred in products#index: 

invalid byte sequence in UTF-8 
activesupport (3.0.4) lib/active_support/core_ext/object/blank.rb:68:in `=~' 

------------------------------- 
Request: 
------------------------------- 

* URL  : http://www.mysite.com/category/category-name-\x8E~ice 
* Parameters: {"page"=>1, "controller"=>"products", "action"=>"index", "category"=>"category-name-\x8E~ice"} 

最後的字符串不應該在那裏(「 - \ x8E〜ice」)。任何想法爲什麼會出現,或者我能做些什麼來調試/重現它?

感謝

回答

13

我們創建了一個rails middleware濾掉所有不能我們的應用程序內處理的怪編碼。

,我們遇到的問題是,有有奇怪的編碼要求,例如的Cp1252/Windows的1252。當Ruby 1.9嘗試將這些字符串與utf-8正則表達式匹配時,它就會爆炸。

我試着用iconv處理這一問題的各種方法,但它看起來像我的Mac上工作,不要在服務器上運行的解決方案。所以最簡單的方法可能是最好的...

+0

你如何在你的應用程序中安裝它?這是否作爲初始化程序進入? – 2011-11-18 18:44:35

+1

看看導遊http://guides.rubyonrails.org/rails_on_rack.html#action-controller-middleware-stack – phoet 2011-11-21 20:28:32

7

我剛剛發佈了一個名爲UTF8Cleaner新的寶石,其主要基於@phoet和@pithyless的工作。它包括Railtie,所以你可以將它放在你的Gemfile而忘記了那些「無效的字節序列」錯誤。

https://github.com/singlebrook/utf8-cleaner

+0

我跟這個有很多的掙扎,而這種寶石爲我做! – ndrix 2013-05-16 11:00:17

相關問題