[pgsql-jp: 25326] Re: Unicode マッピングの問題
Eiji Tokuya
e-tokuya @ sankyo-unyu.jp
2002年 3月 18日 (月) 13:02:57 JST
徳家です。
> 徳家です。
>
> > 石井です.
> >
> > > で、README.mb.jpを再度確認すると。
> > > PostgreSQLの持っていたEUC_JP<->SJISの仕様つまり、PostgreSQL
> > > におけるEUC_JPの文字はJISX0201+JISX0208+JISX0212に加えてこれ
> > > らに無いCP932の文字が追加になっているという内容なのです。
> >
> > 「CP932の文字が追加」というのはちょっと実際と違うと思います.たとえば,
> > i-modeのいわゆる「絵文字」はCP932にはたぶん含まれていませんが,
> > PostgreSQLの実装ではそれも取込んでいます.
>
> i-mode絵文字はCP932でいう外字領域に配置されていますね。
> なるほど、CP932.TXTには外字領域はサポートされていないから、
> i-mode絵文字が消えるというわけですね。
> 確かにそうでした。どうもすいません。(..;)
>
> それでREADME.mb.jpの修正で、「SJISユーザ定義文字への対応」
> のUnicode <---> SJIS変換は・・・・・と言う部分をわざわざ残したのを
> 思い出した・・・・。(^^;)
>
> ・・・・・うーむ。
> ここまで乗りかかった船、Unicode配布のマッピングには手を加え
> ずに済みそうなので、ついでにi-mode絵文字やその他の外字も
> サポートしちゃいますかぁ。(^^;)
と、いうことで作ってみました。
・Japanese UDC <-> UTF-8 patch with PostgreSQL 7.2 and Added Encoding patch
( Update 2002-03-18)
PostgreSQLにおいてUnicode(UTF-8)に以下の文字領域に対応させました。
・ i-mode 絵文字
・ ユーザ定義文字(外字)
i-mode 絵文字はSJISユーザ定義文字の(0xF89F〜0xF9B0)として扱われます。
それを踏まえた上で、以下の様に変換します。
SJIS EUC_JP UNICODE(UTF-8)
(0xF040〜0xF4FC) (0xF5A1〜0xFEFE) (0xEE8080〜0xEE8BAB)
(0xF540〜0xF9FC) (0x8FF5A1〜0x0x8FFEFE) (0xEE8EAC〜0xEE9D97)
# 仕様は、SJIS <-> EUC_JPのケースと同等に、Unicodeの私用領域に
# 全て順に変換する仕組みです。
※ PostgreSQL 7.2リリース版にパッチをあてる場合は「エンコーディング
追加パッチ」を先に取り込んだあとにこのパッチを取り込んでください。
http://www.sankyo-unyu.co.jp/Pool/PostgreSQL.htm
にパッチを置いています。
よろしかったら、どうぞ。
徳家
pgsql-jp メーリングリストの案内