【发布时间】:2016-08-10 20:07:12
【问题描述】:
我正在尝试将 params 的输出保存到数据库(我正在保存:params.inspect) - 这是应该保存的字符串示例:
> {\"utf8\"=>\"✓\", \"_method\"=>\"patch\", \"authenticity_token\"=>\"fpQC8FY8+qztD41jjcFSJRars539KRshw/vczmmJd9Q=\",
> \"car\"=>{\"role_type\"=>\"1\", \"admin_id\"=>\"67\",
> \"branch_id\"=>\"1\", \"template_id\"=>\"21\", \"cost\"=>\"0.00\",
> \"carrier_additional_cost\"=>\"0.00\", ...
首先,我尝试像这样保存参数:
all_params = params.except(:controller, :action).inspect
但它没有成功。所以:
all_params = params.except(:controller, :action).inspect.encode("iso-8859-1")
还有这个:
all_params = params.except(:controller, :action).inspect.encode("iso-8859-1").force_encoding("utf-8")
返回相同的错误。
如何正确保存params.inspect的输出?
我尝试保存此数据的列是text,而不是string。
谢谢
【问题讨论】:
-
意外的字符串值是什么?是
✓吗? -
我相信 - 其他一切看起来都像“正常”角色......
-
params.to_s.encoding带给你什么? -
您是否尝试过强制编码为 UTF-8?
-
@13aal - 是的,它显示在最新块代码的 OP 中。
标签: mysql ruby-on-rails ruby encoding character-encoding