- PR -

HTMLページが??になってしまいます。

投稿者投稿内容
おがわ
大ベテラン
会議室デビュー日: 2001/08/01
投稿数: 199
お住まい・勤務地: 千葉県
投稿日時: 2004-05-22 00:56
JSPソースファイルが、該当する文字セットで保存されていますか?
白いエース
会議室デビュー日: 2003/12/16
投稿数: 12
投稿日時: 2004-05-23 21:55
返信遅れました。すみません。
Windows-31Jで保存されているはずです。
正確にいうとeclipseで保存していますので、MS932で保存されているので、
server.xmlでWindows-31Jで保存するように設定しました。
以下のページを参考にしました。
http://www.atmarkit.co.jp/fjava/rensai2/eclipse03/eclipse03.html
SJ0392
ベテラン
会議室デビュー日: 2004/02/05
投稿数: 62
お住まい・勤務地: 神奈川・横浜
投稿日時: 2004-05-24 13:49
的外れなら申し訳ありません。

私も最近eclipseを使用して開発しています。
環境は、Win2000、J2SE1.4.1、Tomcat4.1、eclipse2.1.1。
初めてWindows環境下でTomcatと連携(プラグイン:com.sysdeo.eclipse.tomcat_2.2)させた時にMS932を認識してくれない問題が起きました。

原因は、eclipseの設定で、「Tomcat」−「JVMの設定」という箇所のブートクラスパスに、
rt.jarと同じディレクトリ上にあるcharsets.jarが含まれていないという事でした。

ちなみに下記行をServletと適当な確認用クライアントプログラムに組み込んで差分を確認しました。
System.getProperties();
SystemProperties.getProperty("java.class.path");
SystemProperties.getProperty("sun.boot.class.path"); << ここに違いがでました。
SystemProperties.getProperty("sun.boot.library.path");

#Java初心者が間違われると怖いので念のため
getProperty の実行結果はString(文字列)で返却されるので、
クライアントの場合は標準出力「System.out.println()」、Serlvetの場合はブラウザ「HttpServletResponse の getOutputStream()」などに表示して確認して下さい。


[ メッセージ編集済み 編集者: SJ0392 編集日時 2004-05-24 14:08 ]
白いエース
会議室デビュー日: 2003/12/16
投稿数: 12
投稿日時: 2004-05-25 00:20
ついに判明しました。
しかし、理由がわかりません。どなたか説明できる方へ教えてください。

原因:
フィルターで
PrintWriter out = res.getWriter();
を呼び出していただけで、HTML、JSPの日本語が??になってしまいました。
上の文を削除したら、あっさり直りました。不明。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-05-25 00:44
おそらく setContentType() する前に getWriter() を呼びだしてるからです。
なぜ・・・かはわかります?

矢継ぎ早に質問しないでもう少し調べてみてはいかがでしょうか?
また、質問するならするで情報を一通りまとめないと第三者にはわかりませんよ。この場合フィルタを使ってるっていうのはとても重要な情報です。フィルタがあればコンテンツはどうにでも変えてしまえるのですから・・・
自分で解決できない、人に聞くのに情報を的確に伝えられないのであればオープンソースではなく商用製品を使った方が安くこともありますよ。

[ メッセージ編集済み 編集者: インギ 編集日時 2004-05-25 00:52 ]
白いエース
会議室デビュー日: 2003/12/16
投稿数: 12
投稿日時: 2004-05-25 01:18
はずれです。
この順番で記述していました。
req.setCharacterEncoding("Windows-31J");
res.setContentType("text/html;charset=Windows-31J");
PrintWriter out = res.getWriter();
これを現在は、
req.setCharacterEncoding("Windows-31J");
res.setContentType("text/html;charset=Windows-31J");
//PrintWriter out = res.getWriter();
こうしてうまくいっています。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-05-25 01:25
そ、そうですか・・・。
でも動くパターンと動かないパターンが手に入ったので切り分けが楽になりましたね。

スキルアップ/キャリアアップ(JOB@IT)