8

Firefox Web コンソールの JS タブに次の警告が表示されます ( Ctrl+ Shift+ K)

すべての Unicode 文字をエンコードできない Windows-1252 エンコードでフォームが送信されたため、ユーザー入力が破損する可能性があります。この問題を回避するには、ページ自体のエンコーディングを UTF-8 に変更するか、フォーム要素で accept-charset=utf-8 を指定して、フォームが UTF-8 エンコーディングで送信されるようにページを変更する必要があります。@ http://localhost:8080/myapp/login

次のように、html は utf-8 エンコーディングを明示的に使用します。

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

html (実際には Freemarker テンプレート) ファイルは、以前は Windows マシン上にありました。そこで、recode ユーティリティを使用して、ここで提案されているように、それらを utf-8 に再コード化しました。しかし、それでも同じ警告が表示されます。

ここで何が欠けていますか?

Chrome の開発者ツール ユーティリティに警告やエラーはありません ( Ctrl+ Shift+ I)

4

1 に答える 1

11

コメントに基づいて、サーバーが HTTP ヘッダーでエンコーディングを ISO-8859-1 として指定していることは明らかです。ドキュメント自体の HTML でこれをオーバーライドすることはできません。ただし、タグでaccept-charset=utf-8属性を使用してform、フォーム データ送信の文字エンコーディングを指定できます。

HTTP ヘッダーを変更するには、サーバー レベルで何かを行う必要があります。これは、.htaccess ファイルの作成または編集などを意味する場合があります。

PSAccept-Encodingヘッダーはこれとは関係ありません。文字エンコーディングではなく、データの転送エンコーディングを指定します。

于 2013-01-07T14:47:35.880 に答える