[pgsql-jp: 37901] Re: EUC_JP を UTF8 に変換するには

Koichi Hyodo sio-0 @ rh.to
2007年 1月 6日 (土) 10:01:51 JST


兵藤です

> From: Morita Kazuro <morita @ yuki.ad.jp>
> Date: Fri, 5 Jan 2007 23:08:43 +0900
> Subject: [pgsql-jp: 37898] Re: EUC_JPをUTF8に変換するには
> 
> PGCLIENTENCODING=SJIS
> となっていたからです。携帯の仕事なのでSJISなのです。

気になるのですが…

文字エンコーデングといったときに、EUC/SJIS/UTF8といった
符号化方式だけに気を取られて、文字集合・mappingの差異を
見逃していないでしょうか ?

携帯で使われるSJISは、符号化方式こそSJISですが、文字集合
はその範囲を逸脱しています。それを無理矢理PostgreSQLの変
換エンジンで形だけEUCに変換して保存したわけですから、まず
最初に登録時の逆変換をかけてデータベース内から元の文字列
(バイト列)を取り出すのが近道だとおもいます。

つまり俺様EUCの文字列ではなく
元の携帯版SJISの文字列をダンプするほうが、簡単です。
これをUTF8にするmappingはいろいろあるとおもいます。
クライアントが一種類で、かならず同じ変換エンジンを通って
データが出入りするのならどんな俺様mappingでも構いません。



ただ、最初に書かれていた「いろいろな事情」というのが
クライアントOSやブラウザ毎に異なるmappingの差異まで
考慮した上でのものなのかどうか、再確認をお勧めします。





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