中本です。 On Tue, 03 Oct 2006 23:21:41 +0900 Yoshiyuki Masutomi <[EMAIL PROTECTED]> wrote:
> curvirgoです。 > > Yoshiyuki Masutomi wrote: > > convertIntoFullWidth_Impl()で前もって2byte文字に変換しておけばと思 > > い、まずXPで1byte文字の時の振り仮名と2byte文字の時の振り仮名を確認し > > てみた所、初めに1byte文字で入力したときは振り仮名も1byte文字で表示さ > > れるのに対し、続けて2byte文字を別のセルに入れると、先ほど表示されて > > いた1byte文字の振り仮名も後から入力した2byte文字の振り仮名に併せて > > 2byte文字で表示されてしまいました。 > もう少し手直ししてみました。 > 自分の所のXPで気になる点は一つ、 > 2byteの「ABC」を入力すると、「ABC」ではなく「アbc」と表示され > てしまう点です。検証用のWindows98SE(クリーンインストール直後の状態)で > は期待どおりの結果が表示されるのでIME側(若しくは学習結果やバージョン > 間)の違いによるものと思われますが、ほぼいい感じにはなったと思います。 > ただし、1byte→2byte変換してから振り仮名を取得するようにした為、現在の > Linux版とは結果が異なるのでそちらもWindows版に近い結果になるように > 1byte→2byte変換してから振り仮名を取得する様に変更するか決めなければな > らないと思います。 与えられた文字列に1byte文字が含まれている場合、 1. 1byte文字列をデリミタとして、文字列を複数の2byte文字列と1byte文字列 に分解 2. 2byte文字列にのみ逆変換 3. 逆変換した2byte文字列と1byte文字列を結合 というような方法で逆変換するというのはどうでしょうか? 例えば、「私の名a前bcd中本efg崇志」という文字列の場合、 1. 私の名, a, 前, bcd, 中本, efg, 崇志 2. ワタシノナ, a, ゼン, bcd, ナカモト, efg, タカシ 3. ワタシノナaゼンbcdナカモトefgタカシ という感じで。これならば、変換前に全角だった英数字と半角だった英数字に 区別が付けられると思います。 -- 中本 崇志 ( Takashi Nakamoto ) E-Mail : [EMAIL PROTECTED], [EMAIL PROTECTED] Homepage: http://bd.tank.jp/ blog : http://bd.tank.jp/diary --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
