« キーボード練習中 | メイン | ぷちhack(2) - Breezeスキンを使うとページ内リンクが効かない »

2007年06月03日

●ぷちhack(1) - Signature Editorの文字化け

前から気づいてたけど放置してたような,割とどうでもいいバグをぷちhack.

Signature Editor は,標準機能として入っていないのが不思議な位の,便利で必須な署名エディタ.
でもうちのUbuntu Linux+自家製有志ビルドThunderbird 2.0 (以下TB) 環境では,署名エディタが文字化けする.

本来UTF-8で保存するべきところ,EUC-JPで保存してしまっているようだ.「UTF-8」でgrepして,次の箇所を見つける.

${HOME}/.mozilla-thunderbird/*/extensions/sigedit@minutedesign.com/chrome/chromeFiles

        if (ua.indexOf("Windows") != -1)
          return "Shift_JIS";
        if (ua.indexOf("Macintosh") != -1 || ua.indexOf("Fedora") != -1 || ua.indexOf("Ubuntu") != -1) 
          return "UTF-8";
        if (ua.indexOf("Linux") != -1)
          return "EUC-JP";
        return "UTF-8";

ふむ.UserAgent (UA) を見て,どの文字コードを使うべきが判断しているのね.うちのThunderbirdのUAはっと...
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.3) Gecko/20070509 Thunderbird/2.0.0.0

ということで,最後から2番めのreturnに引っかかって,EUC-JPになってるのね.

明らかに,TBが自家製有志ビルドなのが原因ぽいので,本家へバグとして報告するのは憚られる.本来は,TB の UA を修正するべきだろうけど,やり方がよく分からなかったので,Signature Editorの方をいじらせてもらう.

${HOME}/.mozilla-thunderbird/*/extensions/sigedit@minutedesign.com/chrome/chromeFiles
        if (ua.indexOf("Windows") != -1)
          return "Shift_JIS";
        if (ua.indexOf("Macintosh") != -1 || ua.indexOf("Fedora") != -1 || ua.indexOf("Ubuntu") != -1) 
          return "UTF-8";
        // if (ua.indexOf("Linux") != -1)
          // return "EUC-JP";
        return "UTF-8";

うん.適当すぎ.でも文字化けは解消されたので,OKということに.




とかやってたら,偶然今日,こんな記事を見つけた.
えむもじら - Bug 324495 Thunderbird に署名の編集機能を

Thunderbird3には標準で入るかも? その際は,about:config あたりで文字コードを手動設定できるようになってるといいな.