2015-10-10 82 views
2

我試圖重現一個例外我的rails網站產生每當特定檢索命中的某一頁:什麼瀏覽器設置可能導致服務器編碼問題?

::的ActionView ::模板錯誤:不兼容的字符編碼:ASCII-8BIT和UTF-8

該頁面採用GET參數。當我用瀏覽器訪問具有相同GET參數的頁面時,所有內容都能正確呈現。

履帶的IP始終是歐盟爲基礎的(我的網站是美國爲主),以及用戶代理的一個是:

的Mozilla/5.0(兼容; GrapeshotCrawler/2.0; + http://www.grapeshot.co.uk/crawler.php

望着HTTP頭髮送,我看到的唯一的區別我的瀏覽器請求和履帶的是它包含HTTP_ACCEPT_CHARSET之間,而我的不:

- HTTP_ACCEPT_CHARSET:UTF-8,ISO-8859-1; q = 0.7,*; q = 0.6

我試圖在我的請求中設置這個,但我無法重現。有HTTP標頭參數可以改變軌道渲染的方式嗎?有沒有其他設置我可以嘗試重現此?

回答

0

這不是一個瀏覽器,更可能是一個自動爬蟲。事實上,如果你按照你得到了下面的解釋

The Grapeshot crawler is an automated robot that visits pages to examine and analyse the content, in this sense it is somewhat similar to the robots used by the major search engine companies.

除非履帶提交的是POST請求(這實在是不太可能,因爲爬蟲往往遵循通過GET鏈接,而不是發出POST用戶代理的鏈接請求),這意味着抓取工具會以某種方式在頁面中注入一些信息,從而導致控制器崩潰。

最常見的原因是格式錯誤的查詢字符串。檢查與請求關聯的查詢字符串:它可能包含一個非UTF8編碼的字符,可以被控制器讀取,並以某種方式使其崩潰。

檢查異常的堆棧跟蹤(無論是在Rails日誌中還是使用第三方應用程序(如Bugsnag))以確定堆棧的哪個組件導致異常,重現,測試和修復它也是值得的。

+1

是的,我收集了很多。但我無法重現這個問題。參數非常簡單:utf8 =&query_string = misty。我如何讓我的瀏覽器以另一種編碼發送?是否有任何其他http頭/設置我可以設置來調整? – richcao

+0

檢查堆棧跟蹤並使用我建議的異常跟蹤工具之一。這樣你就可以收集整個環境。 –

相關問題