[pgsql-jp: 37930] Re: EUC_JP を UTF8 に変換するには
Hiroki Kataoka
kataoka @ interwiz.jp
2007年 1月 10日 (水) 20:19:27 JST
片岡です。
Morita Kazuro wrote:
> 言い出しっぺですが、PostgreSQLの偉い人たちの話が始まってしまったので
> もう私が口出しをできる余地はなくなりました。
いえいえ、お気軽にどうぞ。
>> 蛇足ですが、SJIS⇔EUC_JP間の外字の変換は、昔からあるSJIS-
>> EUC変換アルゴリズムでは変換できません。意外と複雑です。
>
> これについてですが、ドコモ固有文字については単純なアルゴリズムで
> 問題はありませんでした。私は6〜7年前に携帯のサイトを始めたころ
> PostgreSQL が 6.x.x で2バイト文字の処理ができず(知らなかっただけ?)、
> かといって SJIS のままでは 0x5cの問題があるので、昔からある単純な
> アルゴリズムで EUC に変換していました。
>
> SQL_ASCII で変換も逆変換もすべて自分流だらか、うまく行っている
> ように見えただけ?
「昔からある単純なアルゴリズム」の定義が違うのかもしれませんね。私は、
計算だけで変換できるレベルのアルゴリズムを言っていました。古すぎるのかも。
ドコモ固有文字というのは、SJISのいわゆる外字領域を使っています。それも
95区〜114区まである外字領域のうち111区〜114区の部分です。PostgreSQLが採
用しているSJIS⇔EUC変換規則(※)では、SJISの95区〜104区はEUCのG1 85区〜94
区に、SJISの105区〜114区はEUCのG3 85区〜94区にマッピングされますから、ド
コモ固有文字はG3 91区〜94区に変換されることになります。ちなみにG3は1文字
3バイトですから、ドコモの絵文字も1文字3バイトということになります(EUCで
は)。
以上が、意外と複雑な理由です。
(※)OSF 日本ベンダ協議会 (OSF/JVC) 推奨
日本語 EUC ・シフト JIS 間コード変換仕様
http://www.opengroup.or.jp/jvc/cde/sjis-euc.html
(すでにページがないのでarchive.orgからアクセスしてください。
http://web.archive.org/web/20060101214908/http://www.opengroup.or.jp/jvc/cde/sjis-euc.html
)
--
Hiroki Kataoka <kataoka @ interwiz.jp>
pgsql-jp メーリングリストの案内