文字コード掲示板


一括購読


No.199投稿日時:2004/08/08(日) 13:24    <親記事>
投稿者:森山 将之  <E-Mail>

お試し版 cp932-family パッチ

libiconv-1.9.1 / 1.9.2 に対して、cp932修正/eucJP-ms追加に加えて、独自のエンコーディングとして ISO-2022-JP-ms を追加するパッチのお試し版を作成しました。

http://www2d.biglobe.ne.jp/~msyk/software/libiconv/tmp/libiconv-1.9.1-cp932-family-20040808.patch.gz
http://www2d.biglobe.ne.jp/~msyk/software/libiconv/tmp/libiconv-1.9.2-cp932-family-20040808.patch.gz

ISO-2022-JP-ms は、cp50220 とは異なり、JIS X 0201 片仮名を ESC ( I、ユーザー定義文字を ESC $ ( ? で表現します。

ISO-2022-JP-ms の詳細については、まだ作成していませんが、とりあえずお試し版ということで、パッチだけ公開しておきます。

ISO-2022-JP-ms は Windows-31J(cp932) の全文字(重複文字は一つのコードポイントに集約されます)を、cp932、eucJP-ms、MS版Unicode との間で直接変換可能です。


No.202投稿日時:2004/08/23(月) 13:46    <↑親記事:No.199>
投稿者:tamo  <URL>

今気付きました。試してみます。
精力的な開発に感謝します。お疲れさまです。


No.203投稿日時:2004/09/04(土) 19:42    <↑親記事:No.202>
投稿者:tamo  <URL>

丸数字も表示できました!

libiconv-1.9.2 に iso-2022-jp-ms を追加するパッチを使ってみました。
monafontを使って、やっとこさ丸数字などを表示することができました。
Mutt の場合、set charset=eucJP-ms も必要ですね。(EUC-JP の場合)
確認できたので、mutt-devel に森山さんのパッチを投稿することにします。
ありがとうございました〜!
やっぱり iso-2022-jp-ms (名前はどうでもいいけど) は必要です。


No.204投稿日時:2004/09/04(土) 21:53    <↑親記事:No.203>
投稿者:tamo  <URL>

s/mutt-devel/mutt-dev/

> 確認できたので、mutt-devel に森山さんのパッチを投稿することにします。

正しくは mutt-dev でした。


No.205投稿日時:2004/09/07(火) 12:26    <↑親記事:No.203>
投稿者:tamo  <URL>

Mutt で問題が……

> libiconv-1.9.2 に iso-2022-jp-ms を追加するパッチを使ってみました。> monafontを使って、やっとこさ丸数字などを表示することができました。> Mutt の場合、set charset=eucJP-ms も必要ですね。(EUC-JP の場合)森山さんに言っても仕方がないのですが、Mutt で iconv を使わない部分では eucJP-ms が認識されないからか、誤動作するようです。たとえば、ページャでメッセージを読むとき、行が日本語文字の半分で終わるときに、本当はあいうえおかき+くけこと表示されるはずなのに、上の例では「くけこ」が文字化けするようです。「く」の 1 バイト目が「き」の後ろに付いてしまっているんだと思います。set charset=euc-jpとすると正常に動きます。FreeBSD の mbrtowc 等を使う以上、これは仕方のないことなのでしょうね……。とりあえず報告まで。


No.207投稿日時:2004/09/07(火) 13:03    <↑親記事:No.205>
投稿者:森山 将之  <E-Mail>

Re: Mutt で問題が……

iconv() 側で、Mutt のように、charset 名のエイリアスを定義できるようにして、

EUC-JP → eucJP-ms
Shift_JIS → cp932
ISO-2022-JP → iso-2022-jp-ms

となるように出来ればいいんですがねぇ…
今は、コンパイル時に埋め込みでエイリアスが設定されてしまうので、それを外部ファイルで設定できるようにするというわけです。
そうすれば、Mutt 以外でも cp932ファミリ・エンコーディングが利用しやすくなりますから。


No.210投稿日時:2004/09/13(月) 18:13    <↑親記事:No.205>
投稿者:tamo  <URL>

Mutt の問題は解決

解決しました。

> FreeBSD の mbrtowc 等を使う以上、これは仕方のないことなのでしょうね……。

これを修正するための --without-wc-funcs だよなあ、と思って
mbyte.c に手を入れたら、ちゃんと動きました。Mutt はこれで問題なくなりました。

iconv 側でエイリアスを作って euc-jp を eucJP-ms にしちゃったりすると
send_charset とか file_charset で問題あるかもしれないので、Mutt に関しては
今回のような方法が一番いいと思います。

--- mbyte.c~ Mon Sep 13 14:30:09 2004
+++ mbyte.c Mon Sep 13 14:39:39 2004
@@ -64,7 +64,7 @@
Charset_is_utf8 = 1;
#ifndef HAVE_WC_FUNCS
else if (!strcmp(buffer, "euc-jp") || !strcmp(buffer, "shift_jis")
- || !strcmp(buffer, "cp932"))
+ || !strcmp(buffer, "cp932") || !strcmp(buffer, "eucJP-ms"))
{
charset_is_ja = 1;
charset_to_utf8 = mutt_iconv_open ("UTF-8", charset, 0);
--- charset.c~ Mon Sep 13 14:30:07 2004
+++ charset.c Mon Sep 13 14:41:55 2004
@@ -196,6 +196,7 @@
/* seems to be common on some systems */

{ "sjis", "Shift_JIS" },
+ { "euc-jp-ms", "eucJP-ms" },


/*


No.206投稿日時:2004/09/07(火) 12:53    <↑親記事:No.203>
投稿者:森山 将之  <E-Mail>

Re: 丸数字も表示できました!

テストありがとうございます。

早いところ、正式公開した方がよいのでしょうけれども、正式に公開するための作業をする気力がなく、なかなか手を付けられず、申し訳ありません。

ユーザー定義文字のエスケープシーケンスとして ESC$(? を使っていますが、これに関して意見とかあるでしょうか?
tamo さん以外でも、ご意見のある方はよろしくお願いいたします。


Script : Sylpheed 1.24
Modified by MORIYAMA Masayuki