Bookmarklet文字化け対策

  • 投稿日:
  • by
  • カテゴリ:

このエントリは内容が古いです。
最新の日本語化パッチを使用するか、こちらのエントリを参考にしてください。
日本語化パッチを適用した人は、こちらの文字化け対策を行う必要はありません。

TrackBackの文字化けを解消していい気になっていたら、どこかのサイトでBookmarkletでも文字化けが発生することを知る。
今までその存在を知らなかったBookmarkletですが、ようやくその姿が明らかになったので、ついでにそちらも強引に解決しちゃいます。

どこをいじったらいいかはGoing My Way: Movabletype Bookmarkletを使った記事の引用にヒントがあったので簡単にわかりました。
kengoさんありがとうございます。
ということで、修正点。


  1. mt.cgiが存在する場所から見て、
    ./lib/MT/App/CMS.pmを開きます。
  2. 最新の2.51だと584行目から590行目を以下のように書き換えます。

    if ($q->param('is_bm')) {
        require Jcode;
        $param{selected_text} = $param{text};
        $param{text} = sprintf qq(<a title="%s" href="%s">%s</a>\n\n%s),
            Jcode->new(scalar $q->param('link_title'))->euc,
            Jcode->new(scalar $q->param('link_href'))->euc,
            Jcode->new(scalar $q->param('link_title'))->euc,
            Jcode->new($param{text})->euc;


以上です。
なお、
qq(<a title="%s" href="%s">%s</a>\n\n%s)
の部分をいじると、自動挿入されるタグも変更できていい感じです。
ワタシは
qq(<blockquote><div class="quotetitle"><a title="%s" href="%s" target="_blank">%s</a></div>%s</blockquote>)
とやりました。