質問: 文字入力が可能な画面の全ての文字列の変換確定前の文字を取得したいのですが、 良い方法はありますでしょうか? C#での実現を考えております。 ただ、他の言語でも構いません。 C#でリアルタイムに漢字のかな読みを取得する例は見かけたのですが、 その場合入力した文字列の修正に対応できないと思いますので 他に良い方法がございましたらアドバイスいただければと思います。 よろしくお願いいたします。
回答: ユーザーが入力した確定前の値を正確にカナで得るのは難しいです。 まず原理的に決定できない場合があります。ユーザーがカレットを文字列の中間に置いて変換を行っている状況では、入力確定時にカレットの前後のふりがなの間に新しいふりがなを挿入する形になります。しかし、熟語や英単語や顔文字ではふりがなの各文字が確定文字列のどの文字に対応するのか必ずしも決められません。例えば「いがらし」→「五十嵐」で「嵐」を削除した場合などを考えてみてください。 またペーストされた文字列には当然ふりがな情報が含まれません。 これらの問題は逆変換や字句解析などを併用することである程度緩和できますが、完璧にはなりません。ですので、入力値からふりがなを得るコントロールは入力位置に関係なく新しいふりがなを末尾に追加する仕様になっていることが多いです。