【发布时间】:2012-06-03 06:43:46
【问题描述】:
我正在使用 Rails 3.2.3 和 Ruby 1.9.3。 我有一个名为 Post 的模型,它接受标题和描述。 站点前端通过ajax请求接收通过后端提交的信息。当我填写表格时,假设
title: foo
content: foobar
并提交,我可以通过前端查看数据没有问题。
但是,每当我通过表单提交非 utf8 数据时,例如(注意花哨的引号):
title: foo
content: “foobar”
当我尝试渲染表单时,出现以下错误:
ActionView::Template::Error (incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string))
我的 .js.erb 文件如下所示:
$("#my_post").html('<%= escape_javascript(render :partial => 'post') %>');
我意识到这是编码的问题,但我不确定我应该如何以最佳方式处理它。我想到了几个选择:
- 使用 iconv 库去除非 utf8 - 通过 before_save 过滤器对我的应用程序中的每个模型执行此操作
- Specifying at the top of the js 该文档包含 utf-8(不确定这是否可行)
- 在我的表单中使用
accept-charset="UTF-8"强制浏览器避免提交非utf-8 内容。
我什至不确定这些解决方案是否会有所帮助,而最有效的方法是。 谢谢!
【问题讨论】:
-
form_tag视图助手将为您添加accept-charset="UTF-8"。有什么理由不能使用form_tag?
标签: ruby-on-rails ruby encoding utf-8