[pgsql-jp: 39303] Re: 'encoding "EUC_JP" has no equivalent in "UTF8"' の理由
Hiroki Kataoka
kataoka @ interwiz.jp
2008年 3月 26日 (水) 12:04:24 JST
片岡です。
ITAGAKI Takahiro さんは書きました:
> この問題は、むしろ EUC_JP → UTF8 のマッピングが弱いことが原因かもしれません。
> 例えば、以前この ML にも流れた「はしごたか」などですね。
まず整理しないといけないことがあります。問題としているEUCは、どのEUC-
JPか、ということです。
・eucJP-ms(PostgreSQLが扱う日本語EUC-JP)
・CP51932(WindowsのIEなどが扱う日本語EUC-JP)
PostgreSQLで「変換できない」とよくいわれる「はしごたか」は、CP51932で
のFCE2です。CP51932はPostgreSQLが扱うEUC-JPではありませんから、これが変
換できないのは仕方ないことです。そもそも使っているエンコーディング(文字
セット)が間違っていたといえます。
一方、PostgreSQLが扱うeucJP-msでのFCE2は何の文字になるかというと外字に
なります。またeucJP-msで「はしごたか」を表すなら8FF4FBになります。つまり
CP51932とeucJP-openの双方には互換性がなく、共存もできません。
ですからこの問題に対して「PostgreSQLにはEUC_JP⇔UTF8の変換ルールが足り
ない」と考えるのは誤りです。強いて言うなら「PostgreSQLにCP51932のエン
コーディングがない」でしょうか。
> 基本的には UTF8 は EUC_JP や SJIS を含む文字セット(スーパーセット)
> だと思っていますが、この認識であっているでしょうか?
その点では合っていますが、問題は違うところにあるということです。
--
Hiroki Kataoka <kataoka @ interwiz.jp>
pgsql-jp メーリングリストの案内