私は部分的に_searchresults.html.erbを取得しましたが、これはUTF-8で保存する必要があります。Ruby on Rails escape_javascript内のUTF-8を扱う
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'
私のファイルのすべての符号化されています:私は私が手に関連するページにアクセスしよう
<% # encoding: utf-8
%>
stopLoading();
$('#searchresults').html('<%= escape_javascript(render("shared/searchresults")) %>');
毎回:
は、その後、私はその部分をレンダリングするために、いくつかのjavaxript/AJAXコードを持っていますUTF-8と関連するすべての* .erbファイルには# encoding: utf-8
という魔法のコメントがあります。
私はこれについて何かできることはありますか?
EDIT:
私は今、手動で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
Rubyは私がすべてで.force_encoding入れていても、私のすべてのGSUBの呼び出しで同じエラーを与えます置換文字列。 Ruby192以来
を助け2potatocakes、それはない-.-まだ同じエラー – DeX3
謝罪DeX3、上記を試してみてくださいんが、私は手動で私が表示したいすべての文字列を変換する必要がありました代わりにリンク。それがうまくいくかどうか教えてください – 2potatocakes
それは私のために働いていましたが、**レンダリング**: '(render(" shared/searchresults "))の出力のためにエンコーディングを強制しなければなりませんでした。force_encoding(" utf- –