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

MORIYAMA Masayuki msyk @ mtg.biglobe.ne.jp
2005年 4月 15日 (金) 13:00:02 JST


森山です。

On Thu, 14 Apr 2005 17:48:47 +0900
"kk" <noritamag @ hotmail.com> wrote:

> PostgreSQL側の
> CP932(Windows) <=> eucJP-open
> という変換表が使われている(機能している)
> 
> と判断しました。
> この変換表はPostgreSQLのどこにあるのでしょうか?

すでに他の方が回答されていますので、そちらを参照してください。

> 今やろうとしていることは、WindowsからPostgreSQL
> にアクセスする際、上記の変換表ではなく、
> CP932(Windows) <=> cp51932
> という変換をさせたい、つまり変換表を変更したいのですが、
> 1.CP932(Windows) <=> cp51932 の変換表はPostgreSQL
>   にテンプレートとして存在するものではなく、自分で作成
>   するものなのか

CP51932 の変換に関しては、自力解析するよりほかないというのが現状です。
Windows 上での CP51932 の変換は次のページが参考になるかもしれません。
http://www.kaede-software.com/2005/01/libiconv.html

実際の実装では、以下のことに注意する必要があります。

・CP932 への変換では、NEC選定IBM拡張文字(89〜92区)を使わないようにする。
・CP51932 ではユーザー定義文字を扱えないことに注意。
・CP51932 では、∪∩¬∠⊥≡≒√∵∫ が JIS X 0208 の 2 区と NEC特殊文
  字とNEC選定IBM拡張文字とで重複して定義されている。
  Unicode→CP51932 の変換の時には、JIS X 0208 の 2 区の方のコードポイ
  ントへ変換されるようにする。

> 2.どうやって、その変換表をインストールをしたらいいのか
>   (どうやったら機能するのか)

ソースコードを見ていただくのが一番かと思います。

PostgreSQL を CP51932 に対応させた場合、PHP では CP51932 に対応してい
ないという事にご注意ください。その事を忘れて文字コード変換させると、訳
の分らない事になってしまいますのです。一応、念のため。

‖森山 将之 (MORIYAMA Masayuki)
‖e-mail: msyk @ mtg.biglobe.ne.jp




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