2011-01-05 11 views
0

問題:JavaとStrutsでの特殊文字の扱い1.1

フォームにテキストボックスが表示されます。 alt + 0174を使用して(登録商標)文字を含む文字列を入力します。 (R)記号がブラウザに正しく表示されます。

私はBaseTilesRequestProcessorにブレークポイント(私は要求を検査することを知っている可能な限り早い地点)で、提出ヒット

私はリクエストに掘ると、テキストボックスに対応する値を見つけた場合、それは私の文字列を持っています

私はこの質問を提出する前に、私は答えを見つけました:http://ianpurton.com/struts-utf-8-and-form-submissions私はそのテクニックを使用し、正しく動作しました。だから私の質問は、なぜこれは機能するのですか?このフィルタが適用される前にrequest.getCharacterEncoding()をチェックし、nullだった。このプロパティを設定するのは何ですか?ブラウザは提出していますか?

ありがとうございます!

答えて

1

はい、ブラウザでしたが、投稿時にこのプロパティを設定できましたが、あなたが見つけたリンクが正しく指摘されているため、ほとんどのブラウザはデフォルトでこれを設定しません。その結果、Struts 1のデフォルト値は何でも得られます。これは明らかにUTF-8ではありません。 getCharacterEncoding()をチェックしたときにNULLになったという事実は、ブラウザがそのようなヘッダを送信していないことを確認します。