ruby-on-rails – Rails查看编码问题
发布时间:2020-12-17 03:23:27 所属栏目:百科 来源:网络整理
导读:我正在使用 Ruby 2.0和Rails 3.2.14.我的观点是几个UTF-8字符,主要是货币符号,如???和?.?等.我注意到了一些 (ActionView::Template::Error) "incompatible character encodings: ASCII-8BIT and UTF-8 在我们的生产代码中,并立即尝试访问我的浏览器页面网址
我正在使用
Ruby 2.0和Rails 3.2.14.我的观点是几个UTF-8字符,主要是货币符号,如???和?.?等.我注意到了一些
(ActionView::Template::Error) "incompatible character encodings: ASCII-8BIT and UTF-8 在我们的生产代码中,并立即尝试访问我的浏览器页面网址没有任何问题.在挖掘中,我意识到错误实际上是由BingBot和几只蜘蛛引起的.因此,当我尝试卷曲相同的网址时,我能够重现这个问题.所以,如果我尝试 curl http://localhost:3000/?x=? 我得到视图代码中使用UTF-8符号的错误.我还意识到,如果使用HTML编码的字符串代替符号,则不会发生这种情况.但是,我更喜欢使用实际符号. 我已经尝试在environment.rb中设置Encoding.default_external = Encoding :: UTF_8,将#encoding:utf-8魔术注释添加到文件顶部,但没有帮助. 那么,为什么会出现这种错误呢?除了cookie之外,在浏览器和CURL上点击此URL有什么区别?我如何解决此问题并允许BingBot为我们的网站编制索引?谢谢. 解决方法
在我的模板中泄漏非UTF-8字符的罪魁祸首是Facebook Open Graph的无害元标记
%meta{property: "og:url",content: request.url} 当请求是非标准的时,这会导致编码问题.把它改成 %meta{property: "og:url",content: request.url.force_encoding('UTF-8')} 成功了. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |