- - PR -
「〜」文字化けについて(JDBC Thinドライバ)
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-07-11 11:34
Windows2000,Tomcat,Oracle9i,JDBCThinドライバ,Servlet,JSP,JDK1.4,Struts1.0
の環境でアプリケーション構築しています。 @鰍ネどの文字化けは解決したのですが〜が解決しません。 この問題はネットでもよく見かけるのですが、具体的対応方法がわかりません。 どなたかご教授ください。または参考になるページを教えてください。 どうぞよろしくお願いします。 | ||||||||
|
投稿日時: 2003-07-11 11:41
私も知りたかったので便乗してしまいます。
自分の場合はJDBCではなくFileWriterクラスを使ってファイル書き出しした 時、同じ現象に遭遇しました。 結局、OSをWin2KからRedHatLinux 8 にせざるを得ませんでした。 # 補足 # 環境:Win2K SP3 + jdk1.4.1_03 + Tomcat 4.1.24 です。 # その時はJSPを組んでいる時で、エンコーディングはsjisで受けて、 # ISO8859_1で処理したものでした。 [ メッセージ編集済み 編集者: Ken-Lab 編集日時 2003-07-11 11:55 ] | ||||||||
|
投稿日時: 2003-07-11 11:53
Strutsを試している程度の初心者なのですが、
私は、JSPに下記の設定をすると 〜 が表示できています。 <%@page contentType="text/html; charset=MS932" %> <%@page pageEncoding="MS932" %> これでいいのかな? | ||||||||
|
投稿日時: 2003-07-11 12:00
CAN様>
FileWriterクラスでの問題はこれで解決しました。 ありがとうございました。 # 訂正です。 # ご指示いただいた方法で一瞬直ったと思いましたが、改めて確認しましたら # 記録されたものは、やはり「〜」が「?」になっていました。 # 直接文字変換したものをout.printlnしてみると〜がちゃんと表示されているのに。 # 何故でしょう。 # 現象が似ていても原因が異質であると判断したため、新スレッドをたてて # 質問いたします。どうもすみませんでした。 [ メッセージ編集済み 編集者: Ken-Lab 編集日時 2003-07-11 17:48 ] | ||||||||
|
投稿日時: 2003-07-11 12:04
下記を読んでみてください。 http://www.vc-net.ne.jp/~ytp/bbs/java/bbs3427.html 対応策が解かるかと思います。
ゆんさんの文字化けの問題は、 オラクルとWindowsの文字コードのマッピングの違いから生じているものです。 したがって、上記のようにしても”〜”は文字化けします。 | ||||||||
|
投稿日時: 2003-07-11 12:29
Windows-31Jという書き方もありますよ。MS932よりも親しみやすい気がするので、私はこっちを使ってます。
| ||||||||
|
投稿日時: 2003-07-11 14:35
takuさん、ありがとうございます。この方法でやってみました。
DASHかチェックして文字変換しました。 ところがやっぱり化けてしまいます。 HTMLからstr.getBytes("ISO-8859-1"),"MS932")した直後はSystem.printlnすると「〜」 と表示されます。これを文字変換かけた直後は「?」となります。 JDBCでライトするとやはり「?」となります。変換する文字コードが悪いのですよね。 0x301cではないのでしょうか・・・・? | ||||||||
|
投稿日時: 2003-07-11 15:29
”〜”の文字化けはDBに書くときに文字化けを起こすのではありません。 (ライト時に文字化けしていれば復元は難しいかとおもいます。) これはDBから取得したときに、文字化けを起こします。 (Windowsとオラクルの文字コードマッピングが異なるため) したがって、上記のサイトにあるようなクラスを作成することによって、 正しい値が取得できます。 尚、この問題に関してはオラクルのサイトにも記述があります。 ちなみに、私も以前同様の症状に陥ったことがありましたが、 上記のサイトの情報から無事解決することができました。 | ||||||||
