0

私は部分的に_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以来

答えて

0

、ないきれいな解決策、

def self.encode(string) 
    unless string.nil? 
     string.encoding == 'UTF-8'? string : string.force_encoding('utf-8'); 
    end 
end 

THX、あなたのリンクは残念ながら

1

これらのすべてのエンコーディングの問題は、お尻の痛みとなっている。これをやってみて、それが動作するかどうかを確認:

4: $('#searchresults').html('<%= escape_javascript(render("shared/searchresults").force_encoding("utf-8")) %>'); 

OK。だから、それは私はあなたが見ているのと同様の問題を解決する助け..電車に失敗し、このページをチェックしてくださいました..私は最終的にそれを作っ

http://peppyheppy.com/2011/1/20/ruby-1-9-2-encoding-utf-8-and-rails-invalid-byte-sequence-in-us-ascii

+0

を助け2potatocakes、それはない-.-まだ同じエラー – DeX3

+0

謝罪DeX3、上記を試してみてくださいんが、私は手動で私が表示したいすべての文字列を変換する必要がありました代わりにリンク。それがうまくいくかどうか教えてください – 2potatocakes

+0

それは私のために働いていましたが、**レンダリング**: '(render(" shared/searchresults "))の出力のためにエンコーディングを強制しなければなりませんでした。force_encoding(" utf- –