[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[webdav-jp:0779] Re: glibc への CodePage 932 追加について (Re: Apache 2.0.46 へのパッチ適用に付いて)



森山です。

At Sat, 5 Jul 2003 18:32:06 +0900,
MORIYAMA Masayuki さん:
> まだ実装できていないのでしたら、glibc 2.2.5 で、*とりあえず* 動
> くものは作ってありますので、パッチを作ってお送りしましょうか?

以下の場所においておきました。

http://www2d.biglobe.ne.jp/~msyk/software/glibc/

パッチは、次のようにして当るように作って有ります。
(追加/修正があるのは、iconvdata のディレクトリ内だけです)

  % cd glibc-2.2.5
  % zcat ../glibc-2.2.5-cp932.diff.gz | patch -p0

# glibc は、次の記事を参考に、Linux From Scratch のインストール
# 後に、同様の方法でメイクしました。
# http://www.atmarkit.co.jp/flinux/rensai/lfs03/lfs03a.html

注意事項
・テストデータやロケール用データは未作成です。
・CP932 のエイリアスとして WINDOWS-31J, MS932, SJIS-WIN,
  SJIS-OPEN を定義
・EUCJP-MS のエイリアスとして EUCJP-WIN, EUCJP-OPEN を定義
・sjis/euc-jp/iso-2022-jp は変更なしで、cp932->iso-2022-jp といった
  変換は不可です。(「〜」などの問題に対処していません。)
・sjis/euc-jp/iso-2022-jp -> cp932/eucJP-ms の変換は可能となるよ
  うに変換テーブルを一部拡張してあります。(この辺はあまりテスト
  していません。)

その他のファイル

  make_table_ja.pl
     cp932/eucJP-ms のテーブルを作った時に使用した Perl スクリ
    プトの残骸でして、CP932.TXT などの変換表ファイルを読み込んで、
    配列データを標準出力に出力するように作ってあります。
     一度きりのスクリプトなので、必要に応じてコメントアウトを外
    して使うようにしていました。

     スクリプト中で、CP932-non-round-trip.txt というファイルを# 
    使用していますが、これは、
    http://support.microsoft.com/default.aspx?scid=kb;en-us;Q170559
    のページからカットアンドペーストして取っきたものです。

     print_charmap_cp932 というサブルーチンがありますが、これは 
    glibc-2.2.5/localedata/charmaps/WINDOWS-31J というロケール用
    のファイルを作る為に作ってみたのですが、いまいちロケールの事
    がわかっていませんので、これであっているか自信がありません。

  CP932map.pm
     こちらは、上記スクリプトの変換表ファイルの読み込みとエンコー
    ド変換部分を、もう少し再利用すやすいように Perl モジュールの
    勉強を兼ねて作成したものですが、まだ利用していません。

  cp932all.txt
     iconv コマンドテスト用のデータで、cp932 の 2 バイト文字の
    全コードポイントが入っています。
     “シフトJISコード-文字”というフォーマットで入っていますの
    で、特定のコードだけを grep で取り出して変換して確認するとい
    う事が出来ます。

    例)
       % grep 8754 cp932all.txt | iconv -f cp932 -t eucJP-ms | od -tx1
       0000000 38 37 35 34 2d ad b5 0a
       0000010                ~~~~~
 
       % grep 8754 cp932all.txt | iconv -f cp932 -t ucs-2 | od -tx2
       0000000 0038 0037 0035 0034 002d 2160 000a
       0000016                          ~~~~

肝心のテーブル生成のスクリプトの作りが雑なので、あまり参考になら
なかったかもしれません。申し訳ありません。

‖ 森山 将之 (MORIYAMA, Masayuki) 
‖ E-Mail: msyk@xxxxxxxxxxxxxxxxx