[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: Unassigned code points in ISO10646



ご教授有り難うございます。

現在の w3m-ucs.el による多文字セット化は、euc-japan では表現できない文
字について、Mule-UCS を利用して ISO10646 上の文字に変換し、それを数値
文字参照で記述することによって w3m に素通りさせる、という方法で実現さ
れています。

しかし、この方法では、文字セット間の変換が入るために unification の問
題が避けられません。

で、何か良い(楽な)方法はないかなあと考えている時に、

>> On Mon, 29 Oct 2001 21:34:20 +0900 (JST)
>> hsaka@mth.biglobe.ne.jp (Hironori Sakamoto) said as follows:

>> ISO10646 の規格を説明している文書中で、「群0x60〜群0x7fは私用のために
>> 予約されている」という記述を見掛けた

わけです。それで、

>> (1) これは本当ですか?

>ISO 10646 なら本当のようですね。
> http://www.opengroup.or.jp/jvc/cde/ucs-conv.html

>> (2) 「私用のために予約されている」とは、「プログラム中で勝手に利用して
>>     も良い」ということを意味しますか?

>絶対に外部に出さなければ良いのでは。

ということならば、群0x60〜群0x7f中の適当な群に対して、charset-id を面
として、実際のコードポイントを区点とするように割り付けると、Emacs 上で
扱えるあらゆる文字を一意に ISO10646 に従った形でコードを割り当てること
ができそうです。

;; つまり、Mule2 で採用されていた1文字あたり3バイトの表現に適当な 
;; leading character を与えただけですね。

こうすると、文字セットの変換が避けられるので、

  (a) unification の問題を回避でき、
  (b) Mule-UCS が動かない Emacs でも動作する

という嬉しい実装が可能だと思います。

と思って、作業を始めたのですが、意外と難しいですね、これ。CCL でプログ
ラムを書くのって、何だかアセンブラを使っているような錯覚を覚えてきます。

いずれ成果がまとまったら commit しますが、とりあえず御礼まで。

-- 
土屋 雅稔  ( TSUCHIYA Masatoshi )