[pgsql-jp: 37907] Re: EUC_JP を UTF8 に変換するには
Hiroki Kataoka
kataoka @ interwiz.jp
2007年 1月 8日 (月) 20:15:27 JST
片岡です。
Tatsuo Ishii wrote:
> EUC_JP <-> UTF_8も対応していません.SJISとEUC_JPの外字領域はほぼ日本国
> 内で使うデータでしか使わないことが予想されるので,勝手に外字領域を使っ
> ても問題ありませんが,UTF_8とというか,Unicode(ISO/IEC 10646, JIS X
> 0221)の外字領域はSJIS/EUC_JP以外のエンコーディングとの関係もあるので,
> 勝手には決められないような気がします.
外字領域の使い方は利用者次第ですから、そこまで気を使う必要はないと思い
ます。たとえば、ありえないですがSJIS→UNICODE→EUC_KRなどと変換した際に外
字が保存されていることにあまり意味がないように、外字に関して他のエンコー
ディングとの関係を気にする必要はないと思います。
> 懸念点としては,
>
> 1) 外字領域のSJIS<->UCSの標準マッピングが存在するのであればそれを採用
> する方がよいのでは?
SJIS⇔EUC_JPと同様に、TOG/JVC CDE/Motif 技術検討 WG によるEUC⇔UNICODEの
案があります。すでにページがなくなっているようなのでarchive.orgの保管
ページを紹介します。
http://web.archive.org/web/20060515012916/http://www.opengroup.or.jp/jvc/cde/ucs-conv.html
このページの中に次の記述があります。
『マイクロソフト標準キャラクタセット仕様書で定義されている SJIS←→
Unicode の外字マッピングテーブルでは, SJIS のコードポイント 0xF040 〜
0xF9FC (95区 〜 114区) を Unicode の PUA 0xE000 〜 0xE757 に割り付けてい
る.』
この元の情報は見つけていないのですが、信用できる内容だと思います。
また、下記はドコモの絵文字の情報のページです。ここからたどれる絵文字一
覧ページには各絵文字のSJISとUNICODEのコードが記載されていますが、それを
見る限り変換規則は同じです。
http://www.nttdocomo.co.jp/service/imode/make/content/pictograph/about/e1.html
> 2) 上に書いたように,他の文字コードがUCSのE000〜E757を使うことも考慮す
> る必要があるのでは?
これは先に書いたとおり、気にしなくていいと思っています。
> 3) SJIS<->UTF8の外字領域マッピングを決めたら,EUC_JP<->UTF8のマッピン
> グも決める必要があるのでは?
TOG/JVCの案でいいと思います。
> 4) 2)が決まったとして,たとえばUTF8->SJIS->EUC_JP->UTF8の変換を行って
> 矛盾が出ないようにしなければならない
TOG/JVCの案では、外字領域に関しては矛盾無く相互変換が可能です。
> があります.これらがクリアできればよろしいかと思います.
というわけで、2)以外はクリアできると思います。
> もしこれらの問題が解決できない場合は,PostgreSQLの組込みデフォルト変換
> テーブルには採用できませんが,CREATE CONVERSIONによる「ユーザ定義変換
> テーブル」として作っていけば良いと思います.
いずれにしても、この件は需要が多いでしょうから、何らかの形で搭載したい
です。
ちなみに、mapファイルのパッチはすぐに提供できます。:-)
--
Hiroki Kataoka <kataoka @ interwiz.jp>
pgsql-jp メーリングリストの案内