[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 メーリングリストの案内