日本語自動認識QTextCodec(QAutoJpCodec)を用いたKateの日本語の自動認識の実装についていろいろと検討はしていたものの、QTextStreamを通じてQAutoJpCodecを用いた文字コード判別が実装できたとしても、Qt自体の改造を伴うわりには認識精度が十分に確保できるとは思えない。
というわけで、実装方針を変更することとした。以前のエントリーで書いた項目の1番「Kateの読み込み箇所の変更」だけで対処を行なう。
QTextStreamの変更での実装も不可能ではないと思うが、どちらにせよ読み込み後に認識コードの取得作業があるため、各アプリの修正が必要であり、QTextStreamの変更を行なった場合の副作用を考慮すると変更を行なうことによる悪影響が無視できるとは思えなかったためだ。
その代わり、認識コードのクラス化を行ない、文字コードの判定は可能な限り遅らせ精度を高める。認識コードのクラス化についてはkzk氏が既にKDE(CVS-HEAD)の方でkdelibs/khtml/misc/guess_ja.{h,cpp}で行なっているが、kate用にいくつかの機能を実装したいため、独自に行なうこととした。
QTextStreamにsetCodecでセットして使おうとすると、うまく動作しないようだ。
これを修正すればKateなどへの利用も簡単にいきそうなので、内容の確認をしよう。
先日書いたKateの自動認識に向けてで少し書いていたが、日本語の文字コードを自動認識するCodecの開発を検討していた。
認識のアルゴリズムについてはkzk氏の日記で紹介されていたguess_jp()をベースに若干の修正を行なったものを用いる。
Jen Wood(from US)/二階堂和美(ソロ)/映糸 at cafe DETAJ
Open 18:00, Start 19:00
Jen Woodさんの日本ツアーの対バンとして、二階堂和美さんが関西へ。
ということで、大阪、京都の両日とも参加。
cafe DETAJは北浜の川沿いにあるいい感じのカフェ。地図をうろ覚えのまま行ったので少し迷いつつも、いい時間に到着。のんびりとビールでも飲みながら開演を待ちます。
以前に注文していて入荷が遅れたものと、その後に注文していてほぼ通常通りに出荷されたものの双方がHMVから到着。
- みなを / 眠り
- Anemone / 恋人RMX
- Hang On The Box / イエローバナナ
- Hang On The Box / For Every Punk Bitch & Arsehole
Hang On The Boxのライブ版は昔の頃のなのか。昔は演奏がひどいという噂を聞くから、覚悟しないと駄目かな。
ここのところ、まとまった時間がとれないので、コーディングを行なうかどうかは別としてもKateのファイルの文字コード自動認識の実現に向けての検討を行なってみることにした。
コードベースはとりあえず、KDE_3_2_BRANCHで検討を行なうが、最終的にはHEADへのcommitになるだろう。
自動認識を行なう対象文字コードはUTF-8, EUC-JP, Shift_JIS, ISO-2022-JPの日本語関連のみとする。
Kate自体には現在のエンコードがデフォルトのままなのか、指定されたものなのかの区別をするためのコードは実装されていないため、それらやUIについての懸念材料はあるが、それはあと回しにする。
また、変更の方針としては以下の項目を考慮する。
- できるだけコードの変更箇所は小さくまとめる。
- ファイルからの読み込みは一度で済ませる方が良い。
- 他のアプリにも適用できないかも考慮。