[pgsql-jp: 35190] IBM拡張文字の扱いについて

kk noritamag @ hotmail.com
2005年 4月 7日 (木) 11:42:57 JST


こんにちは。kkと申します。

【起きている現象】
IBM拡張文字(0xFA40〜0xFC4B)を、MS-Access
のリンクテーブルから、ODBCドライバ経由でDB
に格納した後、phpからブラウザ表示すると、文字が
化けてしまう。
PsqlEdit(Psqlのエディタ)を用いてIBM拡張文字を
格納しても、同様に化けてしまう。

以下に例を示すと、

1.さんずいに位という漢字(SJISの文字コード:"FB40")
 をPostgreSQL ODBCドライバ経由でDBにインサート。

2.phpを用いてブラウザで表示したところ、「諸j」という
 文字列(eucの文字コード:"8fc7cb")に変換されて表示
 されてしまう。

一方、
http://www.rikai.com/library/kanjitables/kanji_codes.euc.shtml
で調べたところ、「さんずいに位」という漢字のEUCの文字
コードは "FAE3" とのことであったので、以下の手順を
踏んでDBに格納したところ、phpを用いてブラウザから表示
しても正しく表示されました。

1.sjisの"FB40"をバイナリでFreeBSDにアップロード
2  sjis -> euc変換スクリプトを使って "FB40" 
  を "FAE3" に変換。
3.\copy でDBにインポート

しかし、今度は、Accessのリンクテーブルや、PsqlEdit
から "FAE3" の文字を参照すると、「・」と表示されて
しまいます(EUCの文字コードなので当然ですが)。

【お聞きしたいこと】
IBM拡張文字に関して、
SJIS側(Accessのリンクテーブル、PsqlEdit)からも、
EUC側(PHPでブラウザ表示)からも文字化けさせない
手段はないものでしょうか?

また、IBM拡張文字を含め、SJIS⇔EUC の変換テーブル
は、各ソフトウェア(ミドルウェア)毎に持っているもの
なのでしょうか?

"[pgsql-jp: 30677] ACCESSから漢字3が文字化け"
"[pgsql-jp: 30762] 漢字3とは"
をはじめ、ネットでいろいろ調べては見たのですが、
解決策が見つからず、ご相談させて頂きました。

まだまだ勉強不足ではございますが、ご教示の程、
宜しくお願い致します。

----- 開発環境 -----
[web/dbサーバ]
PHP 4.3.3
Apache 1.3.33 
PostgreSQL 7.3.4 (EUC-JP)
FreeBSD 5.0

[クライアント]
Windows 2000
Access 2000
ODBCドライバ 7.03.02.08
PsqlEdit 3.0.4.1



pgsql-jp メーリングリストの案内