- - PR -
PostgreSQLでおこる???文字化けについて
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-06-10 10:41
[環境]
DBServer: LinuxWS postgres7.4.4 AppServer Windows2000Server JDK1.3.1 b_09 JRUN3.0 Apache1.3.29 jdbc:"pg74.216.jdbc2.jar" [現象] DBからデータを取得したした際に2バイト文字列がすべて???となってしまう。 処理として取得のみのWebアプリを作成します。 Servlet内でPostgresqlからデータを取得の際にすべて???となってしまいます。 対応として、以下の様に変換をかけてみましたが???のままでした。 (Unicode→EUC_JPについては若干漢字に化ける文字もありました) new String(wrk.getBytes("8859_1") ,"JISAutoDetect"); new String(wrk.getBytes("8859_1"), "EUC_JP") new String(wrk.getBytes("Unicode"), "EUC_JP") 過去ログを参照してみた所の同様の文字化けではServlet⇔JSP間などで発生があるようですが、今回の現象については、DBから取得した時点で発生しています。 また、DBが既存動いているシステム用のDBの為文字コードの変更等が行えません。 既存ではUnicodeです。(なはず・・・。) どなたかおわかりになる方、些細な情報でも構いません。 ご返信いただけると非常に助かります。 [ メッセージ編集済み 編集者: ysnumber 編集日時 2005-06-10 10:43 ] [ メッセージ編集済み 編集者: ysnumber 編集日時 2005-06-10 10:45 ] | ||||||||
|
投稿日時: 2005-06-10 14:32
ResultSetから普通にgetString()すれば、文字化けせずに取り出すことができるはずです。
これはどのように確認しましたか?
UTF8ってことですかね? 確実な情報を入手して下さい。 | ||||||||
|
投稿日時: 2005-06-10 15:06
カーニーさん ご返信ありがとうございます。
文字化けの確認ですが、 Servlet内でjava.io.ResultSet.getString(int)で取得した値をLog4jのログに出力して確認しております。 また、1点問題になるかもしれない点があるのですが、 テーブル内のすべての項目がtext型になっています。 DBの文字コードですが、 psql -l で確認した所、すべてSQL_ASCIIでした。 テーブルについてもすべてSQL_ASCIIでした。 失礼致しました。 宜しくお願い致します。 | ||||||||
|
投稿日時: 2005-06-10 19:23
text型はたぶん問題ないです。
これは参考になりませんか? http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=20831&forum=10 | ||||||||
|
投稿日時: 2005-06-14 15:06
カーニーさん ありがとうございます。
SQL_ASCIIでは文字化け発生なのですね。 JDBCに手を入れるとして、 JDBCのダウンロードサイトには7.xのソースコードがありませんが、 どうするのでしょうか? インストール用のアーカイブファイル内ですか? ----------------------------------------------------------- 別環境(windows PostgreSQL8.0 DB:[EUC])をいれてやってみた所、 文字化けは起こりませんでした。 ----------------------------------------------------------- | ||||||||
|
投稿日時: 2005-06-14 16:17
参照先にも書いてあるとおり、
|
1