[Mew-dist 04019] Re: charset=shift_jis
Kazumasa Utashiro
utashiro at example.com
1998年 2月 28日 (土) 02:50:55 JST
From: SAKAI Kiyotaka <ksakai at example.com>
Subject: [Mew-dist 04017] Re: charset=shift_jis
Date: Sat, 28 Feb 1998 00:40:28 +0900
> すいません、コードをちゃんと読んでいなかったのですが、この最初の if の
> 部分は削るべきでしたね。
やはり不用でしたか。
> > また、この場合 EUC の SS2 の MSB を落して返していますが、これは外側で
> > よろしくやっているんでしょうか。
> はい、外側で次のようなルーチンをかぶせています。こうしないと、エスケー
> プシークエンスの挿入ができないと思いますので。
これは、上で削除する部分のことで、関係なかったようです。
ただ、またまたコンテキストを追わずに ctext が何かも理解せずに、気になっ
た点を言うと、
> sub shift_jis_to_ctext ($) {
> my $str = shift;
> $str =~ s/(([\x81-\x9f\xe0-\xef].)+)/"\e\$(B" . s2j($1) . "\e(B"/ge;
> $str =~ s/([\xa0-\xdf]+)/\e)I\1\e-A/g;
> return $str;
> }
出力に ESC-(-B-ESC-)-I という一見冗長に見えるコードが現れるのは、それ
が正しいのか、気にする必要がないのか、とにかく意図した結果なんですよね。
jcode.pl では、これを嫌ったために、ちょっと苦労しました。
もう一つ、僕がどうすればいいのかわからないので、とりあえず放置 (という
か無視) しているのが、上の \xa0 のコードです。前にちょっと調べたことが
あって、たしか X 0201 では空白に割り当てられていたと思うのですが、これ
を JIS に変換するときには、一体どうしたらいいものやら。その時は5分悩ん
で結論が出なかったので忘れました :-)。今まで、誰も文句言わないところを
見ると、使われることはないのかな。
--utashiro
Mew-dist メーリングリストの案内