ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Java質問&情報提供サイトコミュの文字コードについて

  • mixiチェック
  • このエントリーをはてなブックマークに追加
お世話になっております。

Webアプリを作っていて、ブラウザ上表示時に文字化けして
困っています悩んでいます頭抱えています。
文字コードについて教えて下さい。

ブラウザはHTTPのContent-typeの値によってどの文字コードで
表示するかを判別するわけですが、文字コード設定は
どの設定ファイルのどの箇所で行えば良いでしょうか。

■開発状況
・Seasar2のchuraを使って開発
・teeda(JSF実装しているというヤツ)使用
・開発環境はWindowsXP
・ブラウザはIE

■確認してみたこと
・Burp Proxy(リクエスト解析ツール)を使用したところ、
 1)ブラウザのフォーム上に漢字を入れ、submit
 2)サーバで処理(画面に入力文字を確認用に表示する為の処理)
 3)ブラウザで表示
 2〜3の間のレスポンスのcontent-typeはUTF-8

どこでUTF-8の設定をしているのやら…。
web.xmlの他に何があるのでしょうか。
各javaファイルやリソースファイルがUTF-8になっていないと
いけないのでしょうか。

しょうもない質問してるかもしれませんが、
ご回答宜しくお願いいたします。

コメント(10)

筋違いの回答であれば申し訳ないですが、WEBであればクライアント側はHTMLでしょうから、メタタグで設定できるのでは?

あと送信データをどのような文字コードで送るかという指定であればフォームタグのナントカ属性でも設定できます。
HTMLのメタタグの話じゃないとすると、
JSPなら、<@page>ディレクティブでcontent-typeとpage-encoding属性とかのこととか、
JVMベースなら -Dfile.encoding=〜
の事でしょうか?

もうしわけないですが、質問の意味がわかりません。。
単純に、処理する時の文字コードを変換せずに、別の文字コードとして送っているとか?
Shift-JISで処理 -> そのままのバイト列で、UTF-8として送信してるなどなど。
みなさん、回答ありがとうございますわーい(嬉しい顔)

>蘭熊才王(幽霊) さん
〜回答〜
 1)のHTTPヘッダのContent-typeはなんですか?
 →申し訳ありません。リクエスト解析ツールでリクエスト内容にContent-typeは見つけられませんでした。
  リクエスト内容は下記になります。
GET <<ここにURIが入ります>>?customerName=%E6%89%8B%E9%85%A2%E5%BE%92&customerNameKana=%E3%83%86%E3%82%B9%E3%83%88&customerRenrakusakiTelNo=090xxxxyyyy&customerRenrakusakiEmail=test@test.com&doConfirm=%E7%A2%BA%E8%AA%8D HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Referer: <<ここにURIが入ります>>
Accept-Language: ja
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 1.0.3705; .NET CLR 2.0.50727)
Host: localhost:8080
Proxy-Connection: Keep-Alive
Cookie: JSESSIONID=C977DE79D6E37FDDA0F1A5B27038B0F6

※GET でリクエストしていますが、
 これはteedaがPRGパタンを使用している為?
 よく分かってません…。

 2)でフォームから受け取ったデータは1)で送信した
  文字コードですか?
  →すみません、確認方法をご提示願えないでしょうか。
  サーバ内で処理する際に適切な文字コード変換を
  行っていますか?(Javaは内部的にUnicode管理)
  →web.xmlではencodingfilter要素でencoding=utf-8を設定しております。
   他に確認すべき点は何処になりますでしょうか。
 3)のHTTPヘッダのContent-typeは明示的に設定しましたか?
  設定しているのならどの文字コードで設定していますか?
  設定していないならjavac -encodingのコンパイル時の
  エンコーディング指定か
  →質問1への回答と重複するかもしれませんが、web.xmlで設定しております。
  環境のデフォルトエンコーディングはなんですか?
  →各ファイルのエンコーディングはUTF-8です。
  
以上、宜しくお願いいたします。
>蘭熊才王(幽霊) さん

はい。HTMLでは下記のように宣言しております。
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />

ですが問題は解決しません。

以上、宜しくお願いいたします。
みなさま。

すみません、自己解決致しました。
http://www.thinkit.co.jp/cert/article/0604/7/7/2.htm
の記事を参考に、
Tomcatのserver.xmlを編集する事により問題解決致しました。
具体的には、
<Connector port="8080">要素に属性として
useBodyEncodingForURI="true"
を追加致しました。

みなさまのご回答をヒントに頑張った甲斐がありました。
ありがとうございました!

超ウレシイっす!

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Java質問&情報提供サイト 更新情報

Java質問&情報提供サイトのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング