- PR -

PostgreSQLでおこる???文字化けについて

1
投稿者投稿内容
ysnumber
会議室デビュー日: 2005/01/26
投稿数: 17
投稿日時: 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 ]
カーニー
ぬし
会議室デビュー日: 2003/09/04
投稿数: 358
お住まい・勤務地: 東京
投稿日時: 2005-06-10 14:32
ResultSetから普通にgetString()すれば、文字化けせずに取り出すことができるはずです。

引用:

過去ログを参照してみた所の同様の文字化けではServlet⇔JSP間などで発生があるようですが、今回の現象については、DBから取得した時点で発生しています。



これはどのように確認しましたか?

引用:

また、DBが既存動いているシステム用のDBの為文字コードの変更等が行えません。
既存ではUnicodeです。(なはず・・・。)



UTF8ってことですかね?
確実な情報を入手して下さい。
ysnumber
会議室デビュー日: 2005/01/26
投稿数: 17
投稿日時: 2005-06-10 15:06
カーニーさん ご返信ありがとうございます。

文字化けの確認ですが、
Servlet内でjava.io.ResultSet.getString(int)で取得した値をLog4jのログに出力して確認しております。

また、1点問題になるかもしれない点があるのですが、
テーブル内のすべての項目がtext型になっています。

DBの文字コードですが、
psql -l
で確認した所、すべてSQL_ASCIIでした。
テーブルについてもすべてSQL_ASCIIでした。
失礼致しました。

宜しくお願い致します。
カーニー
ぬし
会議室デビュー日: 2003/09/04
投稿数: 358
お住まい・勤務地: 東京
投稿日時: 2005-06-10 19:23
text型はたぶん問題ないです。

これは参考になりませんか?

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=20831&forum=10
ysnumber
会議室デビュー日: 2005/01/26
投稿数: 17
投稿日時: 2005-06-14 15:06
カーニーさん ありがとうございます。

SQL_ASCIIでは文字化け発生なのですね。
JDBCに手を入れるとして、
JDBCのダウンロードサイトには7.xのソースコードがありませんが、
どうするのでしょうか?
インストール用のアーカイブファイル内ですか?

-----------------------------------------------------------
別環境(windows PostgreSQL8.0 DB:[EUC])をいれてやってみた所、
文字化けは起こりませんでした。
-----------------------------------------------------------
カーニー
ぬし
会議室デビュー日: 2003/09/04
投稿数: 358
お住まい・勤務地: 東京
投稿日時: 2005-06-14 16:17
引用:

ysnumberさんの書き込み (2005-06-14 15:06) より:
JDBCに手を入れるとして、
JDBCのダウンロードサイトには7.xのソースコードがありませんが、
どうするのでしょうか?
インストール用のアーカイブファイル内ですか?



参照先にも書いてあるとおり、
引用:

JDBCドライバのソースはPostgreSQL本体のソースにくっついてきます。


1

スキルアップ/キャリアアップ(JOB@IT)