Ruby on rails ActionController::Parameters上的强制编码
我正试图从PayPal的IPN中保存参数,以便以后可以访问并用于交叉引用 保存在Ruby on rails ActionController::Parameters上的强制编码,ruby-on-rails,actioncontroller,Ruby On Rails,Actioncontroller,我正试图从PayPal的IPN中保存参数,以便以后可以访问并用于交叉引用 保存在paypal\u log列中的简单代码: @order.paypal\u log=params.to\u json 工作很好,投入生产,但仍然很好。在调查另一个问题的日志时,我遇到了以下问题: 已完成500个内部服务器 JSON::GeneratorError(源序列非法/格式错误的utf-8): 它指向的行是上面的params.to_json 环顾四周后,我发现强制编码(“ISO-8859-1”)。编码(“UT
paypal\u log
列中的简单代码:
@order.paypal\u log=params.to\u json
工作很好,投入生产,但仍然很好。在调查另一个问题的日志时,我遇到了以下问题:
已完成500个内部服务器
JSON::GeneratorError(源序列非法/格式错误的utf-8):
它指向的行是上面的params.to_json
环顾四周后,我发现强制编码(“ISO-8859-1”)。编码(“UTF-8”)
我将行改为params.force_encoding(“ISO-8859-1”).encode(“UTF-8”)。改为_json
,并运行测试,错误为:
未定义的方法“强制编码”#
这让我觉得,出于某种原因,你不能解析整个params变量,只能解析一个散列。任何可能的强制编码所有参数的解决方案?都可以迭代每个参数并强制编码
params.each { |k, v| params[k] = v.force_encoding('ISO-8859-1').encode('UTF-8') }