2010-11-02-01-文字コードの話 - 8 - project-enigma

2010-11-02-01-文字コードの話 - 8

>> Site top >> weblog >> 月別アーカイブ >> 2010年11月のlog >> 2010-11-02-01-文字コードの話 - 8

最終更新日付:2013/12/31 07:35:53


文字コードの話 - 8

2010 年 11 月 02 日

もうこの話題はおしまいかと思っていたが、再び書きたいことが出てきた。それは、stateful なエンコーディングへの対応だ。

ISO-2022-JP は、エスケープシーケンスによって1バイトコードと2バイトコードの切替えをしている。文字列内の現在位置のコードをどう解釈するかは、それ以前に最後に出現したエスケープシーケンスの種類によって決まる。つまり、状態を持つ必要があるわけだ。そのため、インスタンスをシングルトンのように扱うこれまでの方式では複数の文字列を並行して操作することができない。

cookie のような方法でステートを外出しにできないことはないが、そんな仕組みを選べば stateless なエンコーディングまで巻き添えを食う。かといって基本的なデザインを今のまま変えずに一部のクラスオブジェクトにだけ状態を持たせるのもまたおかしいのだ。その理由は、これら(つまり前回までの EUCJP とか SJIS といった)クラスは本質的にはクラススコープのメソッドを集約したクラスユーティリティとしてデザインされているからだ。メソッドをクラススコープでなくしたのは動的解決のために他ならない。しかし、今状態を追加しようとしている理由は、これらのクラスインスタンスをまるで文字シーケンスの反復子として機能させるためのように見える。デザインしている自分が違和感を感じるようでは話にならない。他の人や将来の自分がどう感じるかは言うまでもないだろう。

今回の話題は考えながら書いているため、残念ながらここでいったん止めざるをえない。新しいデザインはできつつあるが、まだ頭の中でもやもやしているからだ。ある程度まとまったらまた書くことにしよう。

 

コメント

このページにコメントする

 

このページのタグ

Page tag : 開発

 

 


Copyright(C) 2005-2017 project-enigma.
Generated by CL-PREFAB.