OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

文字化けします

  • 困ってます
  • 質問No.208485
  • 閲覧数230
  • ありがとう数7
  • 気になる数0
  • 回答数7
  • コメント数0

お礼率 36% (7/19)

またまた質問で申し訳ないんですが、よろしくお願いします。

Servletで表示させる文字が化けます。
ServletのdoGet()を呼び出しています。
ServletをURLにて直接呼び出しているので、doGetで間違いないと思います。記述としては、

response.setContentType(text/html;charset=Shift_JIS);
と記述しています。
過去の質問等も調べて、byteに変換してJISAutoDetectを指定しても直りませんでした。
str = new String(str.getBytes("iso-8859-1"), "JISAutoDetect")としました。
8859-1も、同様に駄目でした。

そして、tomcatを起動した時に出るDos窓に
「Unsuported encoding: Shift_JIS」
と出ているのですが、tomcat3-1-4ではサポートされてないのでしょうか??

なんとか、解決策ってないでしょうか?
教えてください。よろしくお願いします。
通報する
  • 回答数7
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全7件)

  • 回答No.2
レベル10

ベストアンサー率 37% (64/169)

//str = new String(str.getBytes("iso-8859-1"), "JISAutoDetect"); str = new String(str.getBytes("SJIS"), "JISAutoDetect"); とやってみたら、どうなります? ...続きを読む
//str = new String(str.getBytes("iso-8859-1"), "JISAutoDetect");

str = new String(str.getBytes("SJIS"), "JISAutoDetect");

とやってみたら、どうなります?
補足コメント
HELPMAN

お礼率 36% (7/19)

コンパイルは、通りました。
しかし、表示させようとすると、エラーがでました。
下記に記します。

----------------------------------------------

Error: 500
Location: /servlet/test.Servlet1
Internal Servlet Error:

java.io.UnsupportedEncodingException: SJIS
at sun.io.Converters.getConverterClass(Unknown Source)
at sun.io.Converters.newConverter(Unknown Source)
at sun.io.CharToByteConverter.getConverter(Unknown Source)
at java.lang.String.getCTBConverter(Unknown Source)
at java.lang.String.getBytes(Unknown Source)
at kimura.Servlet1.doGet(servlet1.java:22)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:503)
at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:597)
at org.apache.tomcat.servlets.InvokerServlet.service(InvokerServlet.java:257)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:503)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:559)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:160)
at org.apache.tomcat.service.TcpConnectionThread.run(SimpleTcpEndpoint.java:338)
at java.lang.Thread.run(Unknown Source)

-------------------------------------------------

また、tomcatのログ(tomcatインストールディレクトリ/conf/tomcat.log)にも同じエラーが書かれています。
そして、最初の2行に変なものがありますが、これは関係有りそうでしょうか?

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
Starting endpoint port="8080" handler="org.apache.tomcat.service.http.HttpConnectionHandler"
Starting endpoint port="8007" handler="org.apache.tomcat.service.connector.Ajp12ConnectionHandler"
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

アドバイスよろしくお願いします。
エラーだらけで、泣きそうです。
でも、がんばります。
投稿日時 - 2002-01-30 18:00:22


  • 回答No.1

response.setContentType(text/html;charset=Shift_JIS); の代わりに response.setContentType("text/html;charset=iso-2022-jp"); と書いてみてください。(もしだめなら "SJIS"で試してみてください。) どうもJSPの時は" ...続きを読む
response.setContentType(text/html;charset=Shift_JIS);

の代わりに

response.setContentType("text/html;charset=iso-2022-jp");

と書いてみてください。(もしだめなら "SJIS"で試してみてください。)

どうもJSPの時は"Shift_JIS"と書かないとうまくいかないのですが、Servletの時は
iso-2022-jp もしくは SJIS と書くようです。

では。
補足コメント
HELPMAN

お礼率 36% (7/19)

早速試してみました。

しかし、両方ともエラーが出てしまいます(泣)
エラー内容です。
「Unsuported encoding: iso-2022-jp」
「Unsuported encoding: SJIS」

どうなってるんでしょうねぇ。
難しいですよ。
Unsuportedって、もしかして、何もサポートされてないなんてことだったら、どうしよう。。
困ったぁ~。
投稿日時 - 2002-01-30 17:53:17
  • 回答No.3

下の回答1の訂正です。 >どうもJSPの時は"Shift_JIS"と書かないとうまくいかないのですが、Servletの時は この記述は勘違いでした。encodingを"Shift_JIS"と指定するのは、server.xmlやweb.xmlの中でです。 JSPでも charset=SJIS の指定はできます。 (もしかするとTOMCA ...続きを読む
下の回答1の訂正です。

>どうもJSPの時は"Shift_JIS"と書かないとうまくいかないのですが、Servletの時は

この記述は勘違いでした。encodingを"Shift_JIS"と指定するのは、server.xmlやweb.xmlの中でです。

JSPでも charset=SJIS の指定はできます。

(もしかするとTOMCATのバージョンで違うかもしれませんが・・・)

混乱させてしまいましたら、すみません。
補足コメント
HELPMAN

お礼率 36% (7/19)

いえいえ、ありがとうございます。

色々教えて頂きありがたく思ってます。
早く、日本語が表示できるように必死でがんばってます。

ちなみに、現在は、下みたいになってます。
「??????? GET ????????????????」
恥ずかしながら、GETだけが正常に表示できてます。

がんばります。
投稿日時 - 2002-01-30 18:07:42
  • 回答No.4
レベル10

ベストアンサー率 37% (64/169)

TOMCATのバージョンを上げることはできないのでしょうか? 3.2.4もしくは3.3.1を使った方がいいと思うのですが。 (4.0.1はまだ安定していない感があるので、お勧めしません。) 3.1.4は使ったことありませんが、セキュリティは大丈夫ですか? あまり古いバージョンだとセキュリティホールが塞がれて いなくて攻撃を受けやすい可能性があります。 ...続きを読む
TOMCATのバージョンを上げることはできないのでしょうか?
3.2.4もしくは3.3.1を使った方がいいと思うのですが。
(4.0.1はまだ安定していない感があるので、お勧めしません。)

3.1.4は使ったことありませんが、セキュリティは大丈夫ですか?
あまり古いバージョンだとセキュリティホールが塞がれて
いなくて攻撃を受けやすい可能性があります。
補足コメント
HELPMAN

お礼率 36% (7/19)

まいどまいどで、ありがとうございます。

TOMCATのバージョンは上げる事が出来ます。
仕事上使用しているとかではなくて、勉強してみよう
と思い、見つけたCD(本か何かについてた)から
TOMCATをインストールしたので、いつでも変更可能です。

ですので、セキュリティも全然大丈夫です。
ご心配して頂いて、ありがとうございます。

もうちょっと、色々調べてみて、だめだったらバージョンアップします。(結構、原因調査ってのも勉強になり面白かったりで^^;)
投稿日時 - 2002-01-31 10:25:37
  • 回答No.6

補足です。 もしJDK1.2.×を使っていらっしゃるのなら str.getBytes("iso-8859-1")を str.getBytes("iso8859-1") か str.getBytes("iso8859_1")に してみてください。 どうも、JDKのバージョンによってエンコーディング名が違うようです。 ...続きを読む
補足です。

もしJDK1.2.×を使っていらっしゃるのなら

str.getBytes("iso-8859-1")を

str.getBytes("iso8859-1") か

str.getBytes("iso8859_1")に してみてください。

どうも、JDKのバージョンによってエンコーディング名が違うようです。

参考までに。
補足コメント
HELPMAN

お礼率 36% (7/19)

JDK1.3を使用していますが、とりあえずチャレンジしました。

結果は、駄目でした。
まさに、奥が深いです。
でも、面白いですね。
がんばります。
早く、日本語が見たくなってきました。
投稿日時 - 2002-01-31 10:56:41
  • 回答No.5

ひとつ確認していただきたいのですが、お使いのJDKのバージョンは何でしょうか。 str = new String(str.getBytes("iso-8859-1"), "JISAutoDetect") を TOMCAT3.2.4+JDK1.2.2で試してみると確かにgetBytes()のあたりでエラーがでました。 TOMCAT3.2.4+JDK1 ...続きを読む
ひとつ確認していただきたいのですが、お使いのJDKのバージョンは何でしょうか。

str = new String(str.getBytes("iso-8859-1"), "JISAutoDetect") を

TOMCAT3.2.4+JDK1.2.2で試してみると確かにgetBytes()のあたりでエラーがでました。

TOMCAT3.2.4+JDK1.3.0で試すとエラーが出ませんでした。

JDK1.2.×をお使いでしたらJDK1.3.×にしてみてください。

参考までに。
補足コメント
HELPMAN

お礼率 36% (7/19)

おはようございます。
返事が遅くなりました。

jdkの方は、1.3を使用しています。

>TOMCAT3.2.4+JDK1.2.2で試してみると確かに
>getBytes()のあたりでエラーがでました。

そうなんです。私も、そこでエラーでます。
でも、問題の切りわけを考えると、とりあえずTOMCAT自体
が怪しいかなと思っています。

それと、TOMCAT起動時の画面に表示される内容が正常でないような気がします。下記の通りですが、エラーが出ているのでlogs/tomcat.logを見ろ。みたいな。

■■■■■■■■■■tomcat起動時画面■■■■■■■■
Context log: path="/examples" Adding context path="/examples" docBase="webapps/examples"
Context log: path="/XmlServlet" Adding context path="/XmlServlet" docBase="webapps/XmlSe
vlet"
Context log: path="" Adding context path="" docBase="webapps/ROOT"
Context log: path="/test" Adding context path="/test" docBase="webapps/test"
Starting tomcat. Check logs/tomcat.log for error messages
■■■■■■■■■■■■■■■■■■■■■■■■■■

しかし、一応起動は出来ています。
それと、現在URLの指定にIPアドレスを指定しています。
localhostを指定すると表示できません。
これも、何か設定がおかしいのでしょうか?

tomcat.logも下記に記します。
★★★★★★★tomcat.log内容★★★★★★★★★★★★
Starting tomcat install="C:\tomcat" home="C:\tomcat" classPath="C:\tomcat\classes;C:\tomcat\lib\webserver.jar;C:\tomcat\lib\jasper.jar;C:\tomcat\lib\xml.jar;C:\tomcat\lib\servlet.jar;C:\jdk1.3\lib\tools.jar;D:\javamail\javamail-1.2\mail.jar;D:\javamail\jaf-1.0.1\activation.jar;.;C:\jdk1.3\bin;C:\tomcat\lib\servlet.jar;C:jdk1.3\lib\tools.jar"
Context log: path="/admin" Automatic context load docBase="C:tomcat\webapps\admin"
Context log: path="/admin" Adding context path="/admin" docBase="C:\tomcat\webapps\admin"
Starting endpoint port="8080" handler="org.apache.tomcat.service.http.HttpConnectionHandler"
Starting endpoint port="8007" handler="org.apache.tomcat.service.connector.Ajp12ConnectionHandler"
★★★★★★★★★★★★★★★★★★★★★★★★★★
私には、さっぱりの内容です^^;
何か、アドバイスあればよろしくお願いします。
バージョンアップも考えていますが、もうちょい、がんばってみます。
投稿日時 - 2002-01-31 10:35:39
  • 回答No.7

文字化けの原因を探るほうは、ちょっと行き詰まってしまいました。 (Tomcatのバージョンをあげていただくか、それでだめならソースを見て考えるしか、私には思いつきません…) 気にされているログファイルの内容ですが、 Starting endpoint port="8080" handler="org.apache.tomcat.service.http.Http ...続きを読む
文字化けの原因を探るほうは、ちょっと行き詰まってしまいました。
(Tomcatのバージョンをあげていただくか、それでだめならソースを見て考えるしか、私には思いつきません…)

気にされているログファイルの内容ですが、

Starting endpoint port="8080" handler="org.apache.tomcat.service.http.HttpConnectionHandler"
Starting endpoint port="8007" handler="org.apache.tomcat.service.connector.Ajp12ConnectionHandler"

この2行に関しては、エラーではなくTomcatが使用しているポート番号と、クラス名です。(ご存知だとは思いますが、TomcatはJavaで記述されています)

Tomcatを起動して、ブラウザで確認する場合に

http://localhost:8080/

と入力されると思いますが、この「8080」が、Tomcatのサービスのポート番号です。

他の内容に関してもエラーではなく、Tomcatの自身の設定を表示しているだけですのでご安心下さい。
TOMCAT_HOME\conf\server.xmlで設定している内容の一部ですので、こちらのファイルを一度覗いてみてください。

では、お役に立てずにすみませんが、がんばってください。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ