gpt4 book ai didi

ruby-on-rails - 由于 cookie 的 8 位编码(Rails 3 和 Ruby 1.9)导致错误 'incompatible character encodings: ASCII-8BIT and UTF-8'

转载 作者:数据小太阳 更新时间:2023-10-29 06:54:48 27 4
gpt4 key购买 nike

我将一个使用 1.8.7 的网络应用程序移到了 1.9.2,现在我一直在使用

incompatible character encodings: ASCII-8BIT and UTF-8

我有 UTF-8 的数据库编码,我还有 'config.encoding = "utf-8"'。

我看到了一些想法作为可能的解决方法并添加了

Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8

但是也没用。

出现此错误的一段特定代码是

%ul.address
- @user.address.split(',').each do |line|
%li= line.titleize

我使用的是 HAML,我检查了 line.titleize,编码是 UTF-8。似乎模板是用 ASCII-8BIT 渲染的,每次我尝试渲染像 'ñ' 这样的字符时它都会搞砸

我正在使用 Rails 3.0.5。

我已阅读 James Edward Gray 的帖子,但我仍然可以弄清楚发生了什么;(。

我非常感谢任何形式的帮助 :D。

我也试过:

"string".force_encoding("UTF-8")

# encoding: utf-8

没有任何运气。

固定


查看评论。

最佳答案

我刚刚遇到了类似的事情......并发现隐藏在这个问题的评论中的修复,但认为值得明确强调:

cookie 是 ASCII-8BIT,但 rails 3 模板默认是 utf-8。这意味着在 View 中使用原始 cookie 值可能会引发 Encoding::CompatibilityError(如果用户在 cookie 值中有不兼容)

解决方法(如 Adolfo Builes 所述)是将您的 cookie 值强制转换为 UTF-8,如:

cookies["location"].force_encoding('UTF-8')

关于ruby-on-rails - 由于 cookie 的 8 位编码(Rails 3 和 Ruby 1.9)导致错误 'incompatible character encodings: ASCII-8BIT and UTF-8',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5398889/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com