From: Araki K. <j00...@ip...> - 2001-12-18 05:16:00
|
荒木です:-) Subject: [Mlterm-dev-ja] selection options From: Tomohiro KUBOTA <tk...@ri...> Message-ID: <200...@si...> Date: Mon, 17 Dec 2001 09:03:32 +0900 > 端末エンコーディング セレクション どうする? > ------------------------------------------------------------- > UTF8 COMPOUND_TEXT 変換して受け取る > UTF8 UTF8_STRING そのまま受け取る > UCS-subset,2022 COMPOUND_TEXT 人によって好みが違う->オプション(a) > UCS-subset,2022 UTF8_STRING 変換して受け取る > UCS-subset,non2022 COMPOUND_TEXT UCS 経由変換 (オプション(b)) > UCS-subset,non2022 UTF8_STRING 変換して受け取る > others COMPOUND_TEXT そのまま (オプション(c)) > others UTF8_STRING 変換して受け取る > オプション(a) > 1. UCS を経由した変換により、同一視できる文字は極力端末 > エンコーディングに準拠する形で受け取れるようにする。 > 2. 端末エンコーディングでサポートされる文字集合に属する文字は > それに変換し、そうでない文字は ISO2022 エスケープシーケンスを > 用いた表現で端末に送る。 > 3. 漢字 (JISX0208, JISX0212, JISX0213, KSX1001, GB2312, Big5 に > 属する文字? もっと正確に判断する?) は 2、それ以外は 1 の > 方法を用いる。 うげげ、3 は細かすぎますので、きついです^_^; > オプション(b) > 1. UCS を経由した変換により、同一視できる文字は極力端末 > エンコーディングに準拠する形で受け取れるようにする。 > 2. 違う文字集合に属する文字は捨てる。 > オプション(c) > 1. 端末エンコーディングでサポートされる文字集合だけを受け取り、 > 端末エンコーディングでサポートされない文字は捨てる。 > 2. 端末エンコーディングでサポートされない文字集合に属する > 文字であってもそのまま受け取る。 > > これくらいがあると思いますが、「捨てる」というオプションは > なくてもいいと思います。とすると、オプション (b-2) と (c-1) は > 消え、(b) と (c) はそれぞれ選択肢がひとつしかなくなってしまうので > オプションでさえなくなり、生き残るのはオプション (a) だけとなります。 わたしは、特に(b)について、UCSを経由せず捨てるというオプションはあったほ うがいいと思います。 UCS 変換テーブルにアクセスするのは、特にメモリの制約が厳しい環境ではなる べく避けた方がよいので。 # OS 次第では、起動時から、UCS 変換テーブルまでメモリにロードされる環境 # もあるでしょうけれど。 > で、UTF8_STRING と COMPOUND_TEXT のどちらを要求するかですが、 > > 端末エンコーディング どうする? > ------------------------------------------------------------- > UTF8 UTF8_STRING > UCS-subset,2022 人によって好みが異なる -> オプション(d) > UCS-subset,non2022 UTF8_STRING (どうせ必ず UCS 経由変換するのだから) > others COMPOUND_TEXT 捨てるというオプションがあったほうがいいと判断すると、 UCS-subset,non2022 UTF8_STRING (どうせ必ず UCS 経由変換するのだから) のケースでは、オプション切替えができたほうがいいと思います。(オプション(e)) ただ、 > オプション(d) ですが、 > - オプション(a)が「UCS経由変換」のときは、UTF8_STRING に決まってる > - オプション(a)が「ISO2022」あるいは「漢字のみISO2022」のときは、 > COMPOUND_TEXT に決まってる > ということで、独立なオプションではないので消える。 いわれてみますと、これはそのとおりですので、(d),(e)とも、(a),(b)オプショ ンのUCS経由変換に包接してしまうのが賢そうです。 > 結論として、オプション(a) のみが生き残る。 というわけで、もう少し拡張し、(a)のケースおよび(b)のケースについて、 1. UCS を経由した変換により、同一視できる文字は極力端末 エンコーディングに準拠する形で受け取れるようにする。 UTF8_STRING によるセレクションを優先するのと同値(オプション(d),(e)を包接) (prefer utf8 in receiving) 2. 端末エンコーディングでサポートされる文字集合に属する文字は それに変換し、そうでない文字は ISO2022 エスケープシーケンスを 用いた表現で端末に送る。 (forcibly convert inconvertible char) # 2の機能は、ちょっと面倒ですけれど、なんとか実装してみます。 この二つのオプションを指定できるようにしたいです。 ついでに、UCS subset encodings の場合に、相手方に送信する際の動作として、 3. UTF8_STRING 要求に応える (accept utf8 in sending) というオプションも設けたいです。 一方、自動認識するかどうか、というオプションは外してよいと思います。 上記以外の変更はできないようにしても問題ないと思いますので。 まとめますと、 端末エンコーディング 受信タイプ 変換処理 ------------------------------------------------------------- UTF8 COMPOUND_TEXT 変換して受け取る UTF8 UTF8_STRING そのまま受け取る UCS-subset,2022 COMPOUND_TEXT オプション1,2 UCS-subset,2022 UTF8_STRING オプション1,2 UCS-subset,non2022 COMPOUND_TEXT オプション1 UCS-subset,non2022 UTF8_STRING オプション1 others COMPOUND_TEXT オプション2 others UTF8_STRING オプション2 端末エンコーディング 優先する受信タイプ 優先する送信タイプ ------------------------------------------------------------- UTF8 UTF8_STRING UTF8_STRING UCS-subset,2022 オプション1 オプション3 UCS-subset,non2022 オプション1 オプション3 others COMPOUND_TEXT COMPOUND_TEXT 設定画面は、 +--------+----------+----------+-----+ |encoding|copy&paste|appearance|other| ++ - - - - - - - - - - - - +------+ | +- UCS subset encodings -----------------+ | | |[ ] prefer utf8 in receiving | | | |[ ] accept utf8 in sending | | | +----------------------------------------+ | | +- encodings based on ISO2022 -----------+ | | |[ ] forcibly convert inconvertible char | | | +----------------------------------------+ | +--------------------------------------------+ こんな感じでどうでしょう? では -- kiken j00...@ip... |