- - PR -
servletでResuitSetのgetString( )は日本語が文字化け でもjspではOKなぜ?
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-03-05 19:09
はじめまして java新人です
servletとjspでの日本語の処理でまいってます 環境 j2sdk 1.3.1 oracle9i(jdbc:thinドライバ) tomcat 4.1 上の環境でjdbcを使用してoracleのデータ(日本語)を表示する テストをしていましたが、servletからResuitSetのgetString( )で表示すると 日本語が文字化けします。 同様のコードでjspから実行すると問題なく日本語を表示できるのですが この2つの実行環境の違いは何でしょうか? またservletで正しく日本語の表示をするためには何が必要でしょうか? どなたかご教授頂けないでしょうか。 よろしくお願いします。 |
|
投稿日時: 2004-03-05 19:17
JSP から生成される Servlet のソースコードと自分のサーブレットのコードを見比べてみてはいかがでしょうか?
|
|
投稿日時: 2004-03-05 20:59
[quote]
しげさんの書き込み (2004-03-05 19:09) より: テストをしていましたが、servletからResuitSetのgetString( )で表示すると 日本語が文字化けします。 [/quote] 私も似たような環境(JRE1.1.8ですが)で開発をしていたものです。 基本的に getString() で得られる値は、1byte区切り文字列となってしまい2byte(日本語)文字が正常に表示されないと思っていたのですが、JSPは違うのでしょうか? JSPを使用した経験がないので興味が引かれるところです。 参考まで・・・ 私はgetString()で得た文字列をbyte化し、再度MS932などで文字列として再構成していたと思います。 |
|
投稿日時: 2004-03-08 18:54
こんにちはダメ猫です。
確か、JAVAの文字コードがUnicodeの問題だったと思います。 oracleの文字コードを何にしているかで変わってきますが、そちらを考慮してみると良いと思います。 ResuitSetのgetString()では無くgetObject().toString()で取り出すと上手くいくと思います。 getObject()には何番目のデータかの引数は必要ですが・・・ ダメ猫の戯言なので間違っているかもしれませんが、これでいけたような気がします。 |
|
投稿日時: 2004-03-09 13:40
コードが書かれていないのでなんとも言えませんが、Servletで出力するときにレスポンスの
文字エンコーディングを指定していないのではないでしょうか? |
1
