[pgsql-jp: 29991] 【不具合報告】日本語マップの抜け落ち修正パッチ(7.3.X用)

MORIYAMA Masayuki msyk @ mtg.biglobe.ne.jp
2003年 5月 19日 (月) 23:07:24 JST


はじめまして、森山と申します。

最初から、不具合報告で申し訳ありませんが、下記のページにある、
「日本語マップの抜け落ち修正パッチ(7.3.X用) 」で次のような不具合
と、不具合ほどの問題でなくパッチ自体の問題でもありませんが、
Windows のエンコーディング変換との動作の違いがありましたのでご報
告いたします。

[PostgreSQL Bank]
http://www.sankyo-unyu.co.jp/Pool/PostgreSQL.php

(1) UTF-8 ⇔ EUC_JP (eucJP-open/eucJP-ms) の UDC マッピングの不具合
  ・EUC(UDC) の最終バイトが 0xa1 となるべきものが 0xff となっている。
  ・EUC(UDC) の最終バイトが 0xa1 のコードが間違っている。
  ・EUC(UDC) の最終バイトが 0xa2 のコードが抜け落ちている。
  ・EUC -> UTF-8 で変換できないコードがあった。(配列の要素数の数
    え間違いと思われます)

    TOG 日本ベンダ協議会の次のマッピングをそのまま用いると間違い
    は無いと思われます。(大文字のローマ数字、(株)、No.、TEL に関
    して重複符号化されていますが、13区のNEC特殊文字を使うのが妥
    当ではないかと思われます。現状もそうなっていますし。)

    http://www.opengroup.or.jp/jvc/cde/appendix.html
    ※Microsoft Windows 3.51 式の変換 (eucJP-ms) のマッピングを使う。

(2) UTF-8 → SJIS (MS932) のマッピングに関して
  ・大文字のローマ数字および、(株)、No.、TEL のマッピングが、
    Windows の WideCharToMultiByte() のマッピングと異なり、Java 
    の Cp943C コンバータと同一のマッピングとなっているようです。

    Windows でのマッピングは次のようになっています。(大文字のロー
    マ数字等は、NEC特殊文字の 13区を使う)

    マイクロソフト サポート技術情報 - JP170559
    [PRB] SHIFT - JIS と Unicode 間の変換問題 
    http://support.microsoft.com/default.aspx?scid=kb;ja;JP170559

上記の不具合および Windows のエンコーディング変換との不一致を修
正するパッチを次の場所に置いておきます。

  http://www2d.biglobe.ne.jp/~msyk/software/postgresql-7.3.2.ja.diff.gz
  ※ postgresql-7.3.2 からの直接パッチになります。

  パッチの当て方
    postgresql-7.3.2
      $ tar zxvf postgresql-7.3.2.tar.gz
      $ zcat postgresql-7.3.2.ja.diff.gz | patch -p0

    postgresql-7.3.1 (7.3 の場合も同様)
      $ tar zxvf postgresql-7.3.1.tar.gz
      $ cd postgresql-7.3.1
      $ zcat ../postgresql-7.3.2.ja.diff.gz | patch -p1

  UNICODE/EUC_JP の両データベースに対して、Windows-31J(MS932) で
  ユーザー定義外字領域を含む文字定義のある全コードポイントについ
  て、psql 経由で、UNICODE、SJIS(MS932)、EUC_JP(eucJP-open) のそ
  れぞれで読み書きして、正しく変換される事を確認しました。

# Windows が採用している日本語EUC (コードページ 51932) は、いわ
# ゆる機種依存文字に関して、PosgreSQL が採用している TOG 日本ベ
# ンダ協議会の eucJP-open とは互換性が無いのが難点。

‖ 森山 将之 (MORIYAMA, Masayuki) 
‖ E-Mail: msyk @ mtg.biglobe.ne.jp 




pgsql-jp メーリングリストの案内