From: Tanaka Akira Date: 2007-08-27T00:21:33+09:00 Subject: [ruby-dev:31658] Re: rb_enc_mbclen In article <87ir73oata.fsf@fsij.org>, Tanaka Akira writes: > UTF16LE もそうみたいですね。 アイヌ語とかの扱いのために、Unicode の grapheme をひとつの文 字として扱うようなエンコーディングを考えると、rb_enc_mbclen には、メモリの終了位置だけじゃなくて、その終了以降にデータが ありうるのかどうかを教えてやらないといけななさそうです。 grapheme はひとつの base character の後に 0個以上の combining character が並んだものです。I/O のバッファとかで base character までしか入っていなかった時には、 * 続きがないことがわかっている (EOF が検出されている) 場合は その base character だけを一文字として判断し、 * 続きがあるかもしれない場合は、続きがないとわからないという 結果を返す、 必要があります。 まぁ、後続のデータがありうるかどうかを教えてやる代わりに、両 方の場合の結果をひとつの結果にまとめて返すことも考えられるか な。 http://unicode.org/faq/char_combmark.html うぅむ。せめて combining character のほうが先にあればいいの に。 -- [田中 哲][たなか あきら][Tanaka Akira]