Grails アプリには次の構成があります。
Grails 1.3.7
config.groovy ファイルに以下を設定
grails.views.default.codec="none"
grails.views.gsp.encoding="UTF-8"
grails.converters.encoding="UTF-8"
Tomcat 7.0.22 Tomcat
の server.xml ファイルに次のように設定します。
URIEncoding="UTF-8" useBodyEncodingForURI="true"
そして、私の gsp ページではcharset=UTF-8"
、UTF-8 文字エンコーディングを使用したいので設定しました。
次に、ユニコード文字を入力してフォームを送信し、コントローラーの関連するアクションでパラメーター ダンプをチェックすると、入力ボックスのいずれかで、ユニコード文字が文字化けします。Firebug を使用してサーバーへのブラウザー要求を確認すると、Unicode 文字が正しくエンコードされてサーバーに送信されていることがわかります。
それでも、もし私が sth をやったら。お気に入り
params.unicodeInput = new String(params.unicodeInput.getBytes("8859_1"), "UTF8");
Unicode 文字は正しくデコードされます。ブラウザがユニコード文字を正しく送信しているにもかかわらず、通常のブラウザ要求でユニコード文字が正しくデコードされない理由を知りたいと思いました。
ありがとう!!
編集
同じ構成でデモアプリを作成しましたが、デモアプリではすべて問題ないようです。この問題は、この特定のアプリにのみ存在します。インストールされている他のプラグインが原因でしょうか?
そして両方を印刷するrequest.getCharacterEncoding()
とresponse.getCharacterEncoding()
UTF-8になります。