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