KomodoでLatin-1撲滅を試みる2008年10月30日 04時16分58秒

KomodoでHTAを書いてみようと思ったわけだが

仕事でちょっとしたツールが必要になったので、久々にHTAを書くことにした。

単純なJSやHTAなんかは大体サクラエディタでしこしこと書くのだが、バッチやら参照ディレクトリやらでちくっと複雑になりそうだったのでKomodoを使ってみることにした。

が、ちと困ったことが。Shift_JISのソースをKomodoで開くとなぜか「Latin-1」として検出されてしまい、こんな具合で表示されるのだ。

Latin-1化けすぎ

ほんとはこうなんだけど。

ほんとはSJIS

開くたび変更するのは面倒くさい

ドキュメントのプロパティでCP932に変更すればちゃんと表示されるんだけども恒久的に覚えてくれるわけじゃないので、ファイルを開くたびにちくちくと設定する必要があり、すごく面倒くさい。

なので、なにか手はないかと思って調べたら、どうやらKomodoのマクロはファイルを開くタイミングで起動することができるらしい。これでなんとかならんか。

で、マクロ書いてみた

先のリンクとかを参考に、こんなマクロを書いてみたわけだが。

if( ! komodo.document ) return;
var doc = komodo.document;
if( doc.encoding.short_encoding_name == "Latin-1" ) {
    try {
        doc.setEncodingFromEncodingName( "CP932" );
    } catch(e) {
        ko.dialogs.alert( e );
    }
}
このマクロをとりあえずはプロジェクトに登録し、プロパティの「Triggers」で「after file open」を設定してみると、Latin-1として検出された場合のみCP932にエンコードを自動的に変更してくれる。あー、これでイライラせずにすむわ。

ちなみにCP932以外に設定したかったり、トリガになるエンコーディングをLatin-1以外にしたかったりしたら、使用したいエンコードのファイルをKomodoで開いて、以下のマクロで調べてみればよいかと。

if( ! komodo.document ) return;
ko.dialogs.alert( komodo.document.encoding.short_encoding_name );

あ、そういやマクロ中で使用している komodo オブジェクトは使用が推奨されていないそうな。なのでKomodoのバージョンがあがったら動かなくなる可能性なきにしもあらず。まぁ気にしない。

そういや、これToolboxに登録しても検出してくれるのかな?

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://dara-j.asablo.jp/blog/2008/10/30/3856044/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。