[Anthy-dev 1184] Re: uim-xim & ja_JP.UTF-8

アーカイブの一覧に戻る

YamaKen yamak****@bp*****
2004年 10月 13日 (水) 00:03:14 JST


At Tue, 12 Oct 2004 22:48:21 +0900,
ekato****@ees***** wrote:
> On Tue, Oct 12, 2004 at 10:15:48PM +0900,
> YamaKen <yamak****@bp*****> wrote:
> 
> > uim-ximの内部実装については全く把握できていないのですが、以下の
> > ような理解で合ってますでしょうか。要はja_JP.eucJP localeで動作さ
> > せた場合に文字コードまわりでuim-xim 0.4.3と違った挙動を示す可能
> > 性があるかどうかを確認したいと思っています。「内部UTF-8」と聞い
> > たユーザの方々も気になるでしょうし。
> 
> 無いです。日本語専用の以前の uim-xim は libuim の iconv で EUC-JP に変
> 換 (すどおり?) されたものを、X に送っていたのですが、新しいものは、gtk
> immodule と同様に libuim で UTF-8 に変換された文字列を使っているだけで
> す。
> 
> > ・eucJP → UTF-8(UCS?) → eucJP の変換過程では同じ変換テーブル
> >   (iconv?)を使っていていわゆる「文字化け」は発生しない
> 
> はい。
> 
> > ・eucJP → compound textへの変換処理はuim 0.4.3と同等
> 
> そうです。0.4.4 で問題になった ja_JP.UTF-8 から、X の compound text へ
> 変換では、Xlib が ja locale にも関わらず ÷などの文字については
> Unicode のままにしてしまうのが問題でした。
> 
> > ・ja_JP.UTF-8 localeで動作させた場合、uim-anthyやuim-skkから渡さ
> >   れたEUC-JP文字列はiconv(3)によって"EUC-JP"→"UTF-8"の変換が行
> >   われ、他に独自の変換テーブル等は介在しない
> 
> これは、libuim の方がやっていることで、uim-xim はそのまま X に送ってい
> るだけです。

解説ありがとうございました。doc/XIM-SERVERにこのへんの仕様を記載
したいと思っているので、叩き台を書いてみました。内容を確認しても
らえますか?

他にこのメールを読んでいる方もツッコミよろしくお願いします。


Internal Implementation

uim-xim processes all IM-related strings as UTF-8 for internal
reasons. When uim-xim runs on an UTF-8 locale such as ja_JP.UTF-8, the
strings are converted as follows.

  * "foo" expresses a string encoded in foo.

uim-anthy (only for example)
   |
   v
"EUC-JP"
   |
   v
libuim (iconv(3))
   |
   v
"UTF-8"
   |
   v
uim-xim (XmbTextListToTextProperty)
   |
   v
"compound text"
   |
   v
XIM client


uim-xim also supports non UTF-8 native locales such as
ja_JP.eucJP. When uim-xim runs on such locales, some additional
encoding conversion occurs as follows.

uim-anthy (only for example)
   |
   v
"EUC-JP"
   |
   v
libuim (iconv(3))
   |
   v
"UTF-8"
   |
   v
uim-xim (iconv(3))
   |
   v
"EUC-JP"
   |
   v
uim-xim (XmbTextListToTextProperty)
   |
   v
"compound text"
   |
   v
XIM client


In such case, uim-xim performs an additional conversion via UTF-8 to
process the strings in the implementation. But it is ensured that no
character code alteration will occur since the both 'native->UTF-8"
and 'UTF-8->native' conversions are performed by same converter
iconv(3). This results the string as accurate as the old
implementation which is dedicated to ja_JP.eucJP encoding as follows.

uim-anthy (only for example)
   |
   v
"EUC-JP"
   |
   v
libuim (iconv(3))
   |
   v
"EUC-JP"
   |
   v
uim-xim (XmbTextListToTextProperty)
   |
   v
"compound text"
   |
   v
XIM client


-------------------------------
ヤマケン yamak****@bp*****



Anthy-dev メーリングリストの案内
アーカイブの一覧に戻る