Takashi Nakamoto
blued****@bpost*****
2007年 3月 23日 (金) 01:56:11 JST
中本@長文乱文失礼です。 On Thu, 22 Mar 2007 23:49:50 +0900 Takuro Ashie <ashie****@homa*****> wrote: > 足永です。 > > 表題の通り、辞書のエンコーディングでUTF-8を選択できるようにしました。 ちょっと混乱していると思います。 私もついさっきまで混乱していたので、整理してみました。 scim-anthy、Anthy、kasumiとで文字列のやりとりは3通りあります。 1. scim-anthy <== (context API) ==> anthy anthy_context_set_encoding () でエンコーディング変更可能 2. scim-anthy <== (標準入出力) ==> Kasumi (今のところ EUC-JP 固定) 3. Kasumi <== (priv_dic API) ==> anthy anthy_dic_util_set_encoding () でエンコーディング変更可能 1.のanthy_context_set_encoding()では scim-anthy と Anthy の間での文字 列のやりとりにおける文字エンコーディングを設定するのであって、別に辞書 のエンコーディングを変更するためのものではないです。つまり、足永さんの 言う「辞書のエンコーディング」っていうのは正確な言い方ではないかと。 さらに突っ込むと、1.のエンコーディングはユーザが設定するものではないと 思います。適当に状況を判断して、開発者がエンコーディングを固定しておけ ばよいのではないでしょうか。 A. Anthyの8305以前のバージョンもサポートするために EUC-JP に固定 B. 時代の流れにのって UTF-8 に固定 C. Anthyのバージョンによって EUC-JP か UTF-8 を自動的に選択 あと、3.におけるエンコーディングの変更については、Anthyの個人辞書周り についていろいろと変更があって、私もよく把握していません。ただ、Anthy がちゃんと下位互換性をとってくれているので、とりあえず、3.については今 のところデフォルトの EUC-JP のままにしています(=そもそも Kasumi では anthy_dic_util_set_encoding()関数を呼ばない)。 さて、今のところの目に見える問題は 2. における文字列のやり取りにおいて です。Kasumi がコマンドライン引数で受け付ける文字列は EUC-JP でエンコー ドされたものだと仮定しているにもかかわらず、scim-anthyの設定によっては、 UTF-8 エンコードされた文字列が渡されることです。つまり、ついさっき足永 さんがコミットした scim-anthy の設定で「辞書のエンコーディグ」を UTF-8 にして、なんらかの文字列をプリエディット中にF11キーを押すと、文字化け した文字列が Kasumi に読みとして渡されてしまうのです。 だから、 scim-anthy から Kasumi に渡す文字列は EUC-JP に固定するように しておきます。これは1行変更するだけなので、このメールを送信した後で変 更しておきます。 > kasumiでもanthy_dic_util_set_encoding()でAnthyのエンコーディングをセット > できるようにして、できれば両者の設定を一ヶ所で連動できるようにしたいので > すけど、なんとかならんすか? > 中本さん 1.と3.における文字エンコーディングは一致していなくても実際には問題ない ので、特に scim-anthy と Kasumi の設定を連動させる必要はないです。 しかし、今回みたいに頭の中がこんがらがってしまうので、全部 UTF-8 に統 一したい気はしています。その場合には古いバージョンのものとの互換性が失 われてしまう点を考慮しなければいけません。あるいは、誰かが音頭をとって EUC-JP 撲滅キャンペーンを展開して、古いバージョンの Anthy、 scim-anthy、 Kasumi、 uim を完全に切り捨てるとか(笑) と、ここまで書いてなんて分かりづらいメールを書いているのだろう、と思い ましたがお許しください。もしかしたら、どっかに間違っているところあるか もしれないです。 -- 中本 崇志 (Takashi Nakamoto) E-mail: blued****@bpost***** Homepage: http://bd.tank.jp/ Blog: http://bd.tank.jp/diary/