スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

GETで日本語文字化け -- TomcatのsetCharacterEncoding()

ちょっとしたToDo ListのWebアプリケーションを作ってみた。
簡単に作った後、いろいろと自分で自分に要望を出し作り変えた。
javascriptでテキストボックスの中身を変えたら、サーバーにリクエストを送るようにしたのだが、日本語が入っていると文字化けしてしまう。すぐにエンコードされていないことに気づき、修正したもののうまくいかない。escapeに変えたりとか、サーバー側で、request.setCharacterEncoding()の文字コードを変えたりとかいろいろしたが、駄目。Webで調べても答えが出てこない。
最初、

<input type=text name="category" value="<%= category %>" onchange="location.href='list.jsp?category='+encodeURI(f.category.value)">

としていたが、うまくいかないので、POSTで送ることにした。

<input type=text name="category" value="<%= category %>" onchange="f.submit();">

こうすると、うまくいった。この場合、スニファーすると、Shift_JISで送られていることがわかる。ページのcharsetにあわせているのだろう。一方、encodeURIでは、UTF-8に変換される。
なので、request.setCharacterEncoding("UTF-8")で正しくなるはずなのだがうまくいかない。

調べているうちに、
http://blog.goo.ne.jp/evergreen_1978/e/92e7fb8581476c321407be31bd15ff43

なんと、Tomcat5.0からGetの処理の場合、デフォルトの動作でsetCharacterEncodingが無効になっていました。


とのこと。そんなことか。この問題で、1時間以上無駄にした。

関連記事
スポンサーサイト

コメント

非公開コメント

プロフィール

dayan

Author:dayan
小職は、SE(システムエンジニア)を専門としておりますが、技術的な情報を中心に、それ以外に経済関連の日記、たわいもない日記も載せていきます。
[公式HPもよろしく!]

天気予報

-天気予報コム- -FC2-
リンク
ブロとも申請フォーム

この人とブロともになる

カテゴリー
最近の記事
ブログ内検索
最近のコメント
最近のトラックバック
RSSフィード
月別アーカイブ


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。