スポンサーリンク

Alfredのワークフローと日本語処理の問題

結論から言うと、Alfredのqueryの文字コードはUTF-8-MACだったということです。UTF-8-MACという名称は標準的なものではないようですが

UTF-8-MACの詳細については、様々なサイトで説明されているので省きます。というか、初耳だったので詳しくないです。

SQLiteの検索が失敗する

Excel化されている大量のデータをAlfredから検索できるように、sqliteに流し込み、PHPStormでデバッグをして、「よし、できた!」とAlfredに登録しました。

早速使ってみると問題なく動作します。ただ、特定の文字を入力すると検索に失敗することが判明。でもAlfred以外の環境では問題がない。どうも濁点などがついた文字列で失敗している様子。

デバッグしてみると、「データ」という文字列のバイト数がデバッグ時は9バイト、Alfredのワークフローに登録すると12バイトになっていることが分かりました。

文字コードが違うことは分かりましたが、どちらもUTF-8だよね。と、さらに調べてみるとMacにはUTF-8-MACなるものが存在することが分かりました。完全にこれが怪しいと思い、以下のコードを追加。

$value = iconv("UTF-8-MAC", "UTF-8", $value);

これで問題なく動作するようになりました。

UIが調整できる

話は変わりますが、デザインをある程度カスタマイズできるんですね。今回のSQLiteのデータを表示させるときに、どうにも表示される文字数が少ないので、何かできないかと探してみました。普通にカスタマイズできるんですね。ただ、コマンドキーやシフトキーを押しながらカチカチとクリックする方法はちょっと面倒です。