- PR -

TomcatサンプルのServletが文字化けする

1
投稿者投稿内容
SO
会議室デビュー日: 2004/11/02
投稿数: 10
投稿日時: 2004-11-02 20:48
はじめて投稿します。
よろしくお願いします。

以下の環境でTomcatの使用を考えています。

Windows2000Pro SP4
Tomcat 3.3.2
JDK 1.3.1_13

バイナリ版をダウンロード&解凍してみたのですが、
サーブレットのサンプルページの表示がおかしくなってしまいます。

具体的には、文字の一部が「????」という表示になってしまいます。

例えばRequest Infoの場合、
タイトル、項目名が「????」となっていしまいますが、
取得した値(GETなど)は正常に表示されます。

画面を右クリック→エンコードを
試してみたのですが、効果ありませんでした。
画面表示以前の処理の問題かと思っています。

ちなみに、JSPのほうでは表示に問題ありません。

初歩的な質問かと思いますが、
お分かりの方、よろしくお願いします。
Yama
会議室デビュー日: 2003/06/01
投稿数: 3
投稿日時: 2004-11-03 12:28
Java は内部的に文字コードが UNICODEで取り扱われるので
もしそれ以外の文字コードで何かやりたい時には明示的にコードを指定しないと
うまく処理してくれません.
今回は,OSがWindows なので Encode を Shift_JIS にしないとけないのかな?
Servlet が 情報を受け取る時には下の様に文字コードを指定.
  request.setCharacterEncoding("Shift_JIS");
Servletがブラウザに何か表示する時は
  response.setContentType("text/html; charset=Shift_JIS")

多分 JSPでは下のような記述を頭の方でやっていると思います.
<%@ page contentType="text/html; charset=Shift_JIS" %>

あと,Tomcatのバージョンによってはバグ?でいくらエンコード指定しても
だめなものもありますので気を付けてください.
Beretta
会議室デビュー日: 2004/12/15
投稿数: 1
投稿日時: 2004-12-15 15:26
各Servletソースの以下の部分を修正して、再コンパイルすれば正しく表示されます。
  response.setContentType("text/html");
        ↓
  response.setContentType("text/html; charset=Shift_JIS");
(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2004-12-15 18:21
ああ、それってTomcat3.x系で同じことがあったのを覚えている。
確かResourceBundle系のプロパティファイルを削除すれば直った
気がしました。

遠い昔なので正確には覚えてない。
SO
会議室デビュー日: 2004/11/02
投稿数: 10
投稿日時: 2004-12-21 10:45
返答が遅くなってしまってすみません。

Yamaさん、stepさん、ぽちさん、
みなさんありがとうございました。

Tomcat3.X系のサンプルServletを
そのまま使おうとすると、
こういった現象が起こるようですね。

最初は自分の環境の問題かと思って心配していました。
ありがとうございました。
1

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