[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]
[webdav-jp:0811] libiconv 1.8 cp50220 追加
- To: webdav-jp@xxxxxxxx
- Subject: [webdav-jp:0811] libiconv 1.8 cp50220 追加
- From: MORIYAMA Masayuki <msyk@xxxxxxxxxxxxxxxxx>
- Date: Sun, 13 Jul 2003 20:23:03 +0900
- Delivered-to: webdav-jp@Begi.net
- Posted: Sun, 13 Jul 2003 20:22:07 +0900
森山です。
一旦、スレッドを切らせてもらいます。
At Sat, 12 Jul 2003 23:33:52 +0900,
TAKAHASHI Motonobu さん:
> >cp932 → iso-2022-jp の変換を可能とする為のマッピングの追加が、
> >お気に召さなかったようですね。
>
> そうですね。
> この点は、次にメールがきたら代替案を提示しようと思っていたのですが、そ
> れっきりになってしまいました。
>
> |そうであれば、JIS系エンコーディングと MS系のエンコーディングを完
> |全に分離して、次のように直交性を持たせた方が合理的で良いのかなと
> |感じました。
> |
> | CES JIS系エンコーディング MS系エンコーディング
> | ------------ --------------------- --------------------
> | シフトJIS Shift_JIS cp932 (Microsoft)
> | EUC EUC-JP eucJP-ms (TOG/JVC)
> | RFC1468 ISO-2022-JP cp50220 (Microsoft)
>
> わたしもこれを考えていました。
最初に cp932 のパッチを作成した時には、Windows コードページ
50220 があるという事を知りませんでしたので、やむを得ず
ISO-2022-JP の方を修正していました。
> |libiconv 1.8 に上記のような修正・追加を行う、パッチを作って、
http://www2d.biglobe.ne.jp/~msyk/software/libiconv-1.8-cp932-family.html
に置きました。(cp932修正, eucJP-ms, cp50220 追加パッチです。)
上記パッチの cp50220 (RFC1468符号化方式) は、Windows の動作にあ
わせるために、特別な処理を入れ込んであります。
大きな所では、95区〜120区の処理に関してで、いろいろな MUA で、こ
の範囲にある文字を送ってみると、面白いエンコードの仕方をして送信
してくれます。
Windows コードページ 50220 では、それらを文字化けせずにデコード
出来ていましたので、それを真似てみました。
メジャーどころの MUA では、次のよう凶悪なエンコードになっていま
す。(この 2 つの方式(?)に対応してあります。)
Outlook Express
・95区〜114区(ユーザー定義文字)に対しても、シフトJIS→JISコー
ドの一般的な変換規則をそのまま適用してしまい、1バイト目のコー
ド範囲が 0x7F〜0x92 になっている。
Becky! Internet Mail
・95区(ユーザ定義文字)は、Outlook Express と同方式で、JISコー
ドの 1バイト目が 0x7F になっている。
・96区〜119区(ユーザ定義文字、IBM拡張文字)は、シフトJISのまま
残す。ただし8ビットコードは、SO/SI で挟んで MSB を落とし7ビッ
トコード化。(なかなか、凝った(?)エンコードします)
この辺をサポートすると(一般ユーザーからしてみれば)実用的ではあり
ますが、外国の方への説明は厄介になりそうですから、次のように変更
したバージョンも作っておきました。
cp50220 → Unicode の変換 (MUA での受信時の変換)
Outlook Express (Windowsコードページ51932) や Becky!
Internet Mail で送信されてくる、おかしなコードの救済を行わ
ないようにする。
Unicode → cp50220 の変換 (MUA での送信時の変換)
いわゆる機種依存文字をエラーとするように変更。
(cp50220 → Unicode の変換では機種依存文字を受け付けます)
※「XML 日本語プロファイル」x-iso2022jp-cp932 の説明を読む
と、機種依存文字は使えないと書かれていました。
TR X 0015:1999 XML日本語プロファイル
http://www.y-adagio.com/public/standards/tr_xml_jpf/jpro.htm
XML Japanese Profile W3C Note 14 April 2000 (英語)
http://www.w3.org/TR/japanese-xml/
Code-Page Identifiers (Windows のコードページ一覧?)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/intl/unicode_81rn.asp
エイリアスの変更
EUCJP-MS EUCJP-OPEN EUCJP-WIN X-EUCJP-OPEN-19970715-MS
CP932 MS932 SJIS-OPEN SJIS-WIN WINDOWS-31J X-SJIS-CP932
CP50220 X-ISO2022JP-CP932
# XML日本語プロファイルの X- 付きの正確な名称に従う事にしま
# した。
libiconv-1.8 への直接パッチ形式
http://www2d.biglobe.ne.jp/~msyk/software/libiconv-1.8-cp932-family-2.diff.gz
修正前の lib/cp50220.h
http://www2d.biglobe.ne.jp/~msyk/software/libiconv-1.8/lib/cp50220.h.1.txt
修正後の lib/cp50220.h
http://www2d.biglobe.ne.jp/~msyk/software/libiconv-1.8/lib/cp50220.h.2.txt
# cp50220 の実装や mutt, vim への適用は、以前に済ませてあったの
# ですが、Unicode → cp50220 の変換で、ユーザ定義文字(私用領域)
# を、決め打ちで“〓”に変換していたので、出すのを保留していまし
# た。少し時間を置いて考えてみたら、やはり決め打ちで“〓”に変換
# するのは不味そうという気がしてきましたので、今回、ユーザー定義
# 文字を“〓”に変換せずに、エラーとするようにしました。
> 本当に、助かります。
> まったく、貢献できてなくてすみません。
いえいえ、私も高橋さんや宮本さん、吉山さんが英語でやりとりしてく
ださってくれて助けられています。ですので、そのように仰らないで下
さい。1人1人が出来る事を少しずつでもやって、ゆっくりでも問題を解
決していきましょう。私も微力ながら協力いたします。
‖ 森山 将之 (MORIYAMA, Masayuki)
‖ E-Mail: msyk@xxxxxxxxxxxxxxxxx