【发布时间】:2015-10-10 16:49:39
【问题描述】:
我正在尝试重现我的 rails 网站在特定爬虫访问某个页面时生成的异常:
ActionView::Template::Error:不兼容的字符编码: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
我尝试在我的请求中设置它,但我无法重现。是否有可以改变 rails 呈现方式的 HTTP 标头参数?还有其他设置我可以尝试重现吗?
【问题讨论】:
标签: ruby-on-rails