掲示板でタレコミのあったiTunesふりかけの不具合を修正した。
「~」に対して「から」という読みが振られてしまうというもの。
最初、自分の環境では再現できなくて困惑した。
iTunesふりかけの読みを振る機能はMicrosoft IMEに丸投げしている。
他所様から拝借したMicrosoft IMEから読みを取得するクラス(C#):
github.com
読みの振り方は、Microsoft IMEの学習内容によって変わってくる。
文字入力の際にMicrosoft IMEを使って「から」を使って「~」を入力するという手順を踏んでから、iTunesふりかけで読みを振ると問題の再現ができた。
再現が出来ればこちらのものだ。
文字列のうち、読みを振りたいのは漢字だけ。でも読みを判別するにはそれにくっついてるひらがな、カタカナも必要そうだ。そこで「漢字、ひらがな、カタカナ」と「それ以外」に分けて読みを振ることにした。
曲名が「分かったぞ~これが答えだ!」だとすると
- 分かったぞ
- ~
- これが答えだ
- !
の4つに分解し、1と3は読みに変換。2と4はいじらない。最後に4つを結合する。
でも、漢字、ひらがな、カタカナの判別が意外とややこしい。漢字にはサロゲートペアというchar型2文字で表現するやつもいたりする。
下記のページが参考になった。参考になったというかほぼそのまま拝借させていただいた。
文字がひらがなか、カタカナか、漢字か、英数字か調べる - .NET Tips (VB.NET,C#...)
とても助かった。
修正コミット:
github.com