我使用的是Rails 3.2.3和Ruby 1.9.3。 我有一個名爲Post的模型,它接受一個標題和一個描述。 網站的前端通過ajax請求接收通過後端提交的信息。當我填寫與形式,讓我們說在Rails 3表單中處理非utf-8數據提交的最佳方式是什麼?
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') %>');
我意識到這是編碼的問題,但我不知道我該如何處理它是最好的方式。我想到了幾個選項:
- 剔除非UTF8使用的iconv庫 - 爲每一個模型通過before_save過濾器爲此在我的應用程序
- Specifying at the top of the js文檔包含UTF8(不確定這會起作用)
- 在我的表單中使用
accept-charset="UTF-8"
強制瀏覽器避免提交非utf-8內容。
我甚至不確定這些解決方案會有幫助,而最有效的方法是做到這一點。 謝謝!
的'form_tag'視圖助手將增加'接收字符= 「UTF-8」'你。任何你不能使用'form_tag'的理由? –