こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Javaで機種依存文字を表示できない

※以下に記載する【高】は(はしご高)という機種依存文字として記載します。"はしご高"を入力すると、OKWaveで表示しないためです。。

JDBC経由で、PostgreSQLのDBより【高】という機種依存文字を含む文字列を取得しようとしたところ【高】の文字が抜けた状態でしか取得できません。

"高橋" → "橋" として取得してしまう。

※ Eclipseのデバッグ機能を使用し、DBからデータ値を取得した直後の値を参照しました。

JAVAで機種依存文字【高】を取り扱い、コンソールなどに出力することはできるのでしょうか?

Java : JDK1.5.03
PostgreSQL : 8.1.3
: DB文字コード EUC-JP
JDBC : postgresql-8.1-408.jdbc3.jar

-- 以下プログラム例

Connection con = null;
Statement stm = null;
ResultSet rs = null;
String rtn = "";
try {
stm = con.createStatement();
rs = stm.executeQuery(query);
rs.next();
rtn = rs.getString(1); ←←←← ここでの変数を確認!
System.out.println(rtn); ←←←← ここでの表示を確認!
}

投稿日時 - 2007-01-12 22:50:16

QNo.2661976

困ってます

質問者が選んだベストアンサー

java+jdbc+DBの場合、日本語が化けてしまうのは宿命的なことです。確実に回避するためには、
エンコードして格納してあげるしかありません。

> ※以下に記載する【高】は(はしご高)という機種依存文字として記載します。"はしご高"を入力すると、OKWaveで表示しないためです。。

これと同じことです。

コンピュータ的には、はしご高は"&#39461"(ちなみに39641がUNICODEでの文字コードです)みたいにエンコードしてDBに格納し、取り出して表示する際にこれをデコードして表示してあげる必要があります。

投稿日時 - 2007-01-13 02:05:26

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問