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*****