- - PR -
エラーメッセージの文字化け
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-09-14 14:39
今回もお世話になります。
・windows2000 ・j2sdk-1_4_2_07 ・jakarta-tomcat-5.5.11 で開発しています。 Tomcat4.1では問題なく動作していたのですが、 Tomcat5.5にバージョンアップしたところ Servletの部分でエラーが発生するようになったのですが、 エラーメッセージが文字化けしています。 type ?????? ????? ?? The server encountered an internal error () that prevented it from fulfilling this request. ?? javax.servlet.ServletException: ???????????????????? RequestServKensaku.doPost(RequestServKensaku.java:110) javax.servlet.http.HttpServlet.service(HttpServlet.java:709) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) RequestServKensaku.doPost(RequestServKensaku.java:110) javax.servlet.http.HttpServlet.service(HttpServlet.java:709) ・ ・ ・ Servletのコードには "response.setContentType("text/html; charset=Shift_JIS");" や "request.setCharacterEncoding("Shift_JIS");" と書いているのですが・・・ 他に何か設定が必要なのでしょうか・・・? 申し訳ありませんが、どなたかご教授のほどよろしくお願いいたします。 | ||||
|
投稿日時: 2005-09-14 15:13
Shift-JIS の文字コードセット範囲外の文字コードを扱ってますか?
| ||||
|
投稿日時: 2005-09-14 15:21
コブラ様 お返事ありがとうございます。
>Shift-JIS の文字コードセット範囲外の文字コードを扱ってますか? というのはServletのコード内でしょうか? また文字コードセット範囲外の文字コードというのは"@" や "(株)"といったものということでしょうか? でしたら使用しておりません。 お手数をおかけいたしますが、ご教授のほどよろしくお願いいたします。 | ||||
|
投稿日時: 2005-09-14 23:22
Shift-JIS コードで文字「化」のマルチバイトは
0x89 0xBB 一方、Unix 系や Open系RDBMS で多用される基本文字コードは EUC. その EUC 体系での「化」は16進で 0xB2 0xBD HTML で Charset 指定の場合、この16進がオリジナル文字コードセットの範疇外 であれば、Java 経由の出力なら '?' に自動変換されてまう。 | ||||
|
投稿日時: 2005-09-15 08:25
コブラ様 お返事ありがとうございます。
>HTML で Charset 指定の場合、この16進がオリジナル文字コードセットの範疇外 であれば、Java 経由の出力なら '?' に自動変換されてまう。 とありますが、私は問題解決のために何をすればよろしいのでしょうか? ・HTMLでのCharaset以外の方法を考える ・16進のオリジナル文字コードセットの範疇外?についてしらべJAVA経由であるかをつきとめる といったことをしたらよろしいのでしょうか? 的外れなことを聞いてしまっている気になっていますが、 よろしくお願いいたします。 | ||||
|
投稿日時: 2005-09-15 10:07
<META HTTP-EQUIV の Charset 指定では、php.ini でのパラメータとかDBのオリジナル文字コードとの兼ね合いで、ちゃんとオリジナルに合わせて変換してくれない場合もありますが、それはもう、ブラウザが稼動してるOSの文字コードと引っ張りたいデータを格納しとるDBの文字コード或いは Java の標準 Unicode を実際に一致させるしかないっすね。
Tomcat は詳しくないのですが、マルチバイトに関しては、やはり Unicode が採用されとるんですかね? そうすると Unicode -> Shift_JIS に変換する過程で、 Shift_JIS に存在しない領域へのマッピングが行われ、 ? になってしもたのかも知れません。 後、PHPでは、OS標準とは異なる、リモートマシンで作成したソースを ftp でサーバーに アップした結果、他文字コード体系の漢字のコメントが予期せぬ制御コードと化してしまい、 Parse 解析に悪影響を与えた、なんちゅぅ事もありましたが・・・ | ||||
|
投稿日時: 2005-09-15 10:22
はじめまして。
TOMCAT5.5系はJ2SE5.0用のバージョンだったと記憶しています。 J2SEが1.4系ならばTOMCAT5.0系を使用されて、もう一度確認したほうがよろしいかと。 | ||||
|
投稿日時: 2005-09-15 11:26
コブラ様、yoshi様 お返事ありがとうございます。
web.xmlの中身をいろいろ触っていたら何とか表示できるようになりました。 まだエラーはありますが・・・ Tomcat5.5.11を使用する際に気をつければならないことなどご存知でしたら 教えてください。(web.xmlでのServlet宣言方法など) よろしくお願いいたします。 |