首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪些浏览器设置会导致服务器编码问题?

哪些浏览器设置会导致服务器编码问题?
EN

Stack Overflow用户
提问于 2015-10-11 00:49:39
回答 1查看 63关注 0票数 2

我正在尝试重现rails站点在特定爬虫访问特定页面时生成的异常:

ActionView::Template::Error:不兼容的字符编码:ASCII-8位和UTF-8

该页面接受GET参数。当我用浏览器访问带有相同GET参数的页面时,一切都能正确呈现。

crawler的IP始终是基于EU的(我的站点是基于美国的),其中一个用户代理是:

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头参数可以改变rails的呈现方式?是否有其他设置可以尝试重现此设置?

EN

回答 1

Stack Overflow用户

发布于 2015-10-11 00:54:33

那不是浏览器,更像是自动爬虫。实际上,如果您遵循用户代理中的链接,您将得到以下解释

Grapeshot爬虫是一个自动化的机器人,它访问页面来检查和分析内容,从这个意义上说,它有点类似于主要搜索引擎公司使用的机器人。

除非爬虫正在提交POST请求(这真的不太可能,因为爬虫倾向于通过GET跟踪链接,而不是发布POST请求),这意味着爬虫以某种方式在您的页面中注入了一些信息,从而导致您的控制器崩溃。

最常见的原因是查询字符串格式错误。检查与请求相关的查询字符串:它很可能包含一个非UTF8编码的字符,该字符被控制器读取,但不知何故导致崩溃。

还有必要检查异常的堆栈跟踪(在Rails日志中或使用第三方应用程序,如Bugsnag),以确定堆栈的哪个组件导致了异常,并复制、测试和修复它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33056454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档