Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails ActionController::Parameters上的强制编码_Ruby On Rails_Actioncontroller - Fatal编程技术网

Ruby on rails ActionController::Parameters上的强制编码

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的IPN中保存参数,以便以后可以访问并用于交叉引用

保存在
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') }