From: matz@... (Yukihiro Matsumoto) Date: 2000-11-13T15:54:19+09:00 Subject: [ruby-dev:11494] Re: Ruby I18N まつもと ゆきひろです In message "[ruby-dev:11493] Re: Ruby I18N" on 00/11/13, nagai@ai.kyutech.ac.jp writes: |matz> となると、どういう状態のものならば受け入れられますか? |matz> ISO 2022? 変化する前の ISO 10464? |matz> それを現実にするためにはどうしたら良いと思いますか? | |「どのような文字コードなら」という意味では,正直なところ,わかってません. |ただ,「どのような文字コードでも」容易にサポートできるようにしておけば, |今後どのようになっても支障は出ないのだろうなとは思ってます. それは、まさに私がやろうとしていることなのですが、なかなか難 しい問題をはらんでいるのですよねえ。 |・各文字コード系は String クラスのサブクラス. これは良いです。いや、こうするとは限りませんけど。 |・文字列間の演算には,文字コード変換のために coerce のような仕組みが必要. | to_charcode(code) のようなメソッドでもこの仕組みを使う? 現時点では、nkf, iconv, uconvなどのような明示的な変換を要求 しようと思ってます。 |・IN/OUT のような状態推移があるコードも扱えるようにするなら, | 文字列比較ルーチンや非冗長化ルーチンも必要? | 扱わないなら,文字カウント,文字列切り出しができれば OK ? | 扱えるようにするなら,文字列を読み込んだ際に即座に文字単位にばらして | キャラクターコードと状態とを持っておくようにした方が効率がいい? | その場合,String クラスは,固定バイト幅のデータの並びを扱うものとし, | String クラスのサブクラスとして ByteString クラスも必要となる? さすがにstateのあるコード系は(直接は)サポートできないと思い ます。が、やればできるようにはしたいなあと夢想しています。 |・問題となるのはパーサと正規表現. | 「これ以降のスクリプトの文字コードは XXX とします」という | 指定をするような関数型メソッドが必要か? 関数型メソッドでは呼ばれる時点ですでにパーズは終っているので 手遅れですね。別のディレクティブが必要でしょう。 | その場合,文字単位にばらすのを文字コードクラスに依頼する必要あり? だと思います。 | 指定がなければこれまで通りとすれば互換性に問題無しか? | 固定バイト幅のデータの並びを扱うことにしておく方が | 正規表現のマッチング処理は作りやすいか? 文字列の方は固定バイト幅は選択しないつもりです。 まつもと ゆきひろ /:|)