[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