• 締切済み

Javaの文字化け

Strutsの参考書に添付されていたサンプルソース (ログオン画面にユーザIDとパスワードを入力 → 結果画面にユーザID表示) なのですが、ユーザIDに全角文字を入力すると、結果画面に "????????” と表示されてしまいます。 この事象が起きる原因が知りたいのですが、教えていただけないでしょうか。 全角文字を入力しても、そのまま結果に表示できるようにするにはどうすれば良いかも教えていただけると助かります。 ソースの構成としては (1)ログオン画面(JSP) (2)結果画面(JSP) (3)ActionFormクラス(JAVA) (4)Actionクラス(JAVA) (5)Struts設定ファイル(Xml) ちなみに、参考書のタイトルは 秀和システム社の「Struts1.2」です。 (サンプルソース4) Strutsの勉強を始めたばかりで、基本的な質問で申し訳ないとは思うのですが、よろしくお願いします。

みんなの回答

回答No.3

#2の方ご指摘のとおり、フォームへの日本語入力が想定される場合、エンコーディングの設定は必須のようです。 1.web.xmlへfilter設定を登録する 2.RequestProcessorのサブクラスを作成して、Sturts設定ファイルにそのクラスを指定する 3.ActionFormクラスでエンコーディングを設定する など、対処方法は何通りかあります。 効率や保守性を考えるなら、1か2なのかなと思います。ですが私も初心者なので、あまりはっきりしたことはいえません。すみません‥。 ところで参考にされている本「Struts1.2」とは、もしかして「カンタンStruts1.2 改訂版」というものですか?

noname#49664
noname#49664
回答No.2

#1さんのいうように文字化けの原因は多種多様ですから、とりあえずStruts利用の一般論ということで。 Strutsでは、開発者側で文字コード設定のための処理を組み込まない限り、基本的に送信されたフォームの内容は文字化けするはずです。このため、日本語をフォームから送信する場合は、web.xmlに<filter>タグを使ってフィルター設定するか、アクションフォーム側でキャラクタエンコーディングを設定する処理を行って対処するのが一般的だろうと思います。  Strutsは初めたばかりとのことですが、JSP/サーブレットは理解されているわけですから、これらの対応についてはわかりますよね?  そのサンプルには、このいずれかの対処はされていますか? されていなければ、そのサンプル自体が日本語の送信を想定していないで書かれたものだろうと思います。  お使いの本は読んだことがないのですが、先の方に行くと日本語利用のための説明などが書いてあったりするのではありませんか?

  • jun-1
  • ベストアンサー率29% (18/61)
回答No.1

文字化けは原因が色々あるからね。 とりあえず実行環境はなんでしょう? (jdk1.4 & Tomcat4.1.24など)

関連するQ&A