プロプログラマ

プログラマーを職業としてます。 Flex,Air,C#,Oracle,HTML+JSの言語ノウハウを中心に情報発信していきます

URLパラメータに指定した日本語が文字化けするとき

Flexなどから、Tomcatに対してパラメータつきのURLを送信するとき、パラメータに日本語を使用していると、文字化けすることがあります。

パラメータにUTF8の文字列を指定しているためで、TomcatがこれをデフォルトではUTF8として解釈しないために文字化けします。 
このとき、ISO-8859-1でエンコードされています。日本語を使っていないときは気付かない問題です。

このような場合は、Tomcatのserver.xmlにオプションを追加します。

追加するのは「useBodyEncodingForURI=”true”」です。
Connector定義に追加します。

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" useBodyEncodingForURI="true">

設定後Tomcatを再起動すると反映されます。

これで、パラメータがUTF8でエンコードされます。

今まで設定していない場合は、逆に文字化けする箇所が出てくるかもしれませんので、一通り確認したほうがいいと思います。

結構、この設定を忘れて実行環境ごとに化けたり化けなかったりで混乱することがあります。
注意が必要です。

 

== ランキングに参加しています。ぜひクリックお願いします ==

プログラム ブログランキングへ
にほんブログ村 IT技術ブログへ
にほんブログ村

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください