0

最近、テキストに£文字を挿入する際の問題を発見しました。FireFoxでは「£」と表示されますが、IE9でWebページをレンダリングすると、Aの上にアクセントが付いた「A£」と表示されます。

私が問題を抱えている特定のインスタンスは次のとおりです。

<%= link_to "£150-£300", :controller => params[:controller], :action => params[:action], :min_price => 150, :max_price => 300 %>

IE9では、これらの£記号の両方に「A」という接頭辞が付いています。他のコマンドに文字を挿入しようとしましたlink_toが、同じ動作が得られるため、この行に固有のものではありません。

また、サイトのどこかで記号をプレーンテキストに入力すると、同じ問題が発生することを確認しました。

誰かが過去に同様の問題を抱えていました/救済策を知っていますか?

前もって感謝します

4

1 に答える 1

3

££Windows-1252/ISO-8859-1で誤って解釈されたUTF-8エンコードです。これは、サーバーが送信する物理バイトがUTF-8でエンコードされているが、ブラウザーはそれらをデコードするためにUTF-8を使用していないことを意味します。以下は、ブラウザにUTF-8でそれらを解釈させるためのヒントです。

適切なContent-Typeヘッダーが必要であるか、少なくともhtmlで宣言する必要があります。

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

サーバーがcharsetを含む適切なHTTPContent-Typeヘッダーを送信する場合、それはhtmlタグと見なされることに注意してください。

Railsについてはわかりませんが、実際のHTTPヘッダーを設定する必要があります。

response.headers['Content-Type'] = "text/html; charset=utf-8"

IEの文字エンコードをWindows-1252に明示的に設定した可能性もあります。これにより、IEはサーバーからの宣言を無視します。

于 2013-03-17T15:48:12.200 に答える