我有一個必須以UTF-8保存的部分_searchresults.html.erb。Ruby on Rails在escape_javascript中處理UTF-8
然後我有一些javaxript/AJAX代碼來渲染部分:
<% # encoding: utf-8
%>
stopLoading();
$('#searchresults').html('<%= escape_javascript(render("shared/searchresults")) %>');
每次我嘗試訪問相關頁面,我得到:
ActionView::Template::Error (invalid byte sequence in UTF-8):
1: <% # encoding: utf-8
2: %>
3: stopLoading();
4: $('#searchresults').html('<%= escape_javascript(render("shared/searchresults")) %>');
app/views/searches/index.de.js.erb:4:in `_app_views_searches_index_de_js_erb__423966875_35661432__279394272'
我所有的文件進行編碼與UTF-8和所有相關的* .erb文件有# encoding: utf-8
神奇的評論。
我能做些什麼嗎?
編輯:
現在我試圖逃跑手動JS:
def my_js_escape(js)
if(js)
ret = js.force_encoding('utf-8')
ret.gsub!(/\\/u, '\\\\')
#ret.gsub!(/<\//u, '<\/').force_encoding('utf-8')
#ret.gsub!(/"/u, '\\"').force_encoding('utf-8')
#ret.gsub!(/'/u, "\\'").force_encoding('utf-8')
#/(\\|<\/|\r\n|[\n\r"'])/
return ret
else
''
end
end
紅寶石使我對每一個來電GSUB同樣的錯誤,即使我把.force_encoding上的所有替換字符串。
不幸的是,它不-.-還是同樣的錯誤 – DeX3 2011-04-07 10:40:48
道歉DEX3,試試上面改爲鏈接。讓我知道它是否有效 – 2potatocakes 2011-04-07 23:23:57
它對我有效,但我不得不強制輸出** render **的編碼:'(render(「shared/searchresults」))。force_encoding(「utf-8」)' – 2017-06-13 09:46:14