実体参照の解除方法

守岡知彦 / MORIOKA Tomohiko tomo @ kanji.zinbun.kyoto-u.ac.jp
2003年 2月 18日 (火) 19:19:41 JST


>>>>> In [chise-ja : No.00177] 
>>>>>	"江渡さん" = Kouichirou Eto <2003 @ eto.com> wrote:

江渡さん> Ext.Bなどの実体参照はどう解除すればいいのでしょうか。
江渡さん> 現在は、&U-00029C0F;みたいな指定だった場合、

;; UCS に対しては &#29C0F; みたいな数値参照を用いるのが良いと思います。

江渡さん> 素直にそれを単に数値に変換してchar idとしているが、
江渡さん> それではまずいのでしょうか?

はい。

江渡さん> この変換方法だと、
江渡さん> IDS-UCS-Ext-B-5.txtにある文字などは軒並 has no attributeに
江渡さん> なってしまうようなので、どうすればいいのかと思っています。
江渡さん> 単にまだ属性がはいってないというだけでしょうか。

そうでしょう。

江渡さん> 始めno attributeかどうかをcheckせずに読み込みをしたら、
江渡さん> 合計7万字程度のIDSが読み込みできました。

(略)

大体そんな所でしょうね。

江渡さん> しかしno attributeを省くようにすると、主にExt.Bなどが
江渡さん> 軒並落ちてしまい、合計4万6千程度とかなり減ってしまいました。

(略)

江渡さん> Ext.Bの実体参照を解除する方法が間違っているのではと思ったの
江渡さん> ですが、どのようにすればいいでしょうか?

Ext.B に対して実体参照を作ってないと思うので、これは Ext.B の符号位置
を decode して対応する文字オブジェクトを作るにはどうしたら良いのかとい
うことだと解釈します。

これは、

CHISE_CHAR
CHISE_DECODE_CHAR (CHISE_CCS ccs, int code_point, bool defined_only)
{
  CHISE_CHAR chao = chise_decode_defined_char (ccs, code_point);

  if (defined_only || !CHISE_CHAR_NILP (chao))
    return chao;
  else
    return chise_decode_builtin_char (ccs, code_point);
}

という処理で実現されます。ここで、chise_decode_defined_char はデータベー
スを引く処理であり、chise_decode_builtin_char は組込み文字を作る処理で
す。

ucs は system-char-id を identical 継承したものとして実現されているの
で、chise_decode_builtin_char は code_point を system-char-id と見倣す
ことになります。

-- 
===『幾千億の分子に分かれても ========================================
     決して忘れない。    
     この宇宙が終るまで』              守岡 知彦 (MORIOKA Tomohiko)
====================== Email: <tomo @ kanji.zinbun.kyoto-u.ac.jp> ======




More information about the CHISE-ja mailing list