« TrackBack文字化け対策(p) | メイン(m) | TrackBack考察 »(n)

Bookmarklet文字化け対策

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

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>)
とやりました。



« TrackBack文字化け対策 | メイン | TrackBack考察 »

Trackbacks

このエントリーのトラックバックURL:

この一覧は、次のエントリーを参照しています: Bookmarklet文字化け対策:

» Bookmarklet文字化け対策 送信元 Going My Way
素晴らしい!こちらも早速設定しましたがOKです. 今日1日でかなり使い勝手のよさが進んだ感じがします。Milanoさんありがとう。 引用したい部分をドラッグしてそのままツールバーに登録したBookmarkletのボタンを押すことでどんどん記事をポストすることができるでしょう... [詳しくはこちら]

» Bookmarklet文字化け対策 送信元 talk to oneself 2
 なんか今日一日、すごいことになってる気が。これまでずっと悩んでいた(と言っても自分で行動を起こす気は無かったんだが)文字化けの問題が二つとも、一気に解決してしてしまった。もちろん、俺の手によってでは無く。 Milano::Monolog: Bookmarklet文字化け対策 Trac... [詳しくはこちら]

» Bookmarklet 文字化け対策 送信元 blog.bulknews.net
Milano::Monolog: Bookmarklet文字化け対策 を参考に Bookmarklet 日本語化対策するも、どうも %uNNNN が残ってしまう。 CGI.pm だとうまくいくのだが、このサーバは mod_perl で動かしているので、Apache::Request だと %uNNNN のアンエスケープに対応していないのでだめ... [詳しくはこちら]

» Movable Type の bookmarklet の文字化け修正 送信元 dh's memoranda
TrackBack の文字化けを修正した Milano さんが Bookmarklet のほうも直してしまいました。UTF-8 のサイトだと文字化けしないので修正しなくても大丈夫ですが、以前、苦しんだ経験があるので、紹介します。 Milano::Monolog: Bookmarklet文字化け対策 TrackBackの文字化け... [詳しくはこちら]

» Bookmarkletの文字化け対策。 送信元 salvageship
TrackbackとともにBookmarkletの文字化けも対策できました。 参考にしたサイトはTrackbackと同じく、Milano::Monologさんです。 ありがとうございます。 [詳しくはこちら]

» Movable Type文字化け対策 送信元 ARTIFACT -人工事実-
Milano::Monolog: TrackBack文字化け対策 Milano::Monolog: Bookmarklet文字化け対策 Milano::Monolog: メール文字化け対策  Bookmarkletは、現在見ているページへのリンクのHTMLソースを生成して新規投稿ウィンドウが立ち上がるという機能。ネットを見ている最中に気軽ぎ.. [詳しくはこちら]

» *****Movable Type 日本語化***** 送信元 JBA - Japan Blogging Association
(とりあえず)MOVABLE TYPEの日本語化に関するリンクや質問などが集まるスレッド どんどん増えていくことでしょう。(LINK足す時はTrackbackもよろしくー) ■ HOW TO BLOG by POP-SPACE BLOG ■ MOVABLE TYPE しよう by snotch @ m.e.s.h. ■ TrackBack文字化け対策 ... [詳しくはこちら]

» BookMarkletsを使おう 送信元 BLOG質問箱
BookMarkletsを使ってますか?とても便利な機能です。設定も使い方も超簡単! まず、blogの管理画面に入り Main Menuを表示します。すると右側の一番下に「Set up bookmarklets」という項目が有ります。これを選びます。 図 画面が変わるので、この際、Includeのすべてのギ.. [詳しくはこちら]

» BookMarkletsを使おう 送信元 BLOG質問箱
BookMarkletsを使ってますか?とても便利な機能です。設定も使い方も超簡単! まず、blogの管理画面に入り Main Menuを表示します。すると右側の一番下に「Set up bookmarklets」という項目が有ります。これを選びます。 図 画面が変わるので、この際、Includeのすべてのギ.. [詳しくはこちら]

» log20030108 送信元 HOHBUKURO
設置から各種設定,改造等にあたり参考にさせていただきました。 [詳しくはこちら]

» Bookmarklet文字化対策 送信元 KANAZAWA Walker / クラカメ堂 徒然日記
Milano::Monolog: Bookmarkle文字化対策 上手く使えたかな? [詳しくはこちら]

» ʸ»ú²½¤±Âкö 送信元 Iori's ToyBox
Milano::Monolog: Bookmarkletåô¡¦LÎå,Ìä!ÂåN¾ç¡¦ if ($q->param('is_bm')) { require Jcode; $param{selected_text} = $param{text}; $param{text} = sprintf qq(%s\n\n%s), J... [詳しくはこちら]

» てすてす 送信元 yazawa-net
Milano::Monolog: Bookmarklet文字化け対策 Jcode->new($param{text})->euc;... [詳しくはこちら]

» Bookmarkletの日本語化 送信元 Music, Web and Life
MT 2.63でのBookmarklet日本語問題解決!先達に感謝! [詳しくはこちら]

» test2 送信元 papiko.com
Milano::Monolog: Bookmarklet%u6587%u5B57%u5316%u3051%u5BFE%u7B56... [詳しくはこちら]

» test 送信元 I don't think so.
Milano::Monolog: Bookmarklet文字化け対策 Bookmarklet文字化け対策... [詳しくはこちら]

» http://naoya.dyndns.org/~naoya/mt/archives/000013.html 送信元 NDO::Weblog
Milano::Monolog: Bookmarklet%u6587%u5B57%u5316%u3051%u5BFE%u7B56TrackBack%u306E%u6587%u5B57%u5316%u3051%u3092%u89E3%u6D88%u3057%u3066%u3044%u3044%u6C17%u306B%u306A%u3063%u3066%u3044%u305F%u3089%u3001%u3069%u3053%u304B%u306E%u30B5%u30A4%u30C8%u3067Bookm... [詳しくはこちら]

» Bookmarklet文字化け対策 送信元 First Weblog
Milano::Monolog: Bookmarklet文字化け対策 Bookmarklet文字化け対策... [詳しくはこちら]

» Movable Type変更点いろいろ 送信元 Sakae's Monologues
どこかに引っ越す時用に主な変更点をメモっておく。 カレンダーのリンク先変更 Sillybean: Various tricks with archive calendars How to link to a full day's entries instead of the last one on that day: Turn on daily archives. In your calendar code, replace t... [詳しくはこちら]

» テスト 送信元 Hato's Page
テスト Milano::Monolog: Bookmarklet文字化け対策 TrackBackの文字化けを解消していい気になっていたら、どこかのサイトでBookmarkletでも文字化けが発生することを知る。 今までその存在を知らなかったBookmarkletですが、ようやくその姿が明らかになったので、ついでに... [詳しくはこちら]

» MT It! 便利だなや~ 送信元 [Kp]
Milano::Monolog: Bookmarklet文字化け対策qq(%s\n\n%s) の部分をいじると、自動挿入されるタグも変更できていい感じです。 ワタシは qq(%s%s) とやりました。 自分は文字化け対策よか自動挿入のが嬉しくってさっそく組み込んだっす てっきり MT It! の内部をいぢるもんだ... [詳しくはこちら]

» Bookmarklet文字化け対策 送信元 News
Milano::Monolog: Bookmarklet文字化け対策... [詳しくはこちら]

» ブックマークレット文字化け 送信元 eSolia インフォ
便利です。 Milano::Monolog: Bookmarklet文字化け対策... [詳しくはこちら]

» MT2.64パッチログ 送信元 BLOG質問箱
この記事はMT2.64をより使いやすくするためにカスタマイズしたパッチの履歴です. Milano::Monolog: Bookmarklet文字化け対策より. [MT_HOME]/lib/MT/App/CMS.pmの9行目あたり use Symbol; use Jcode; とし, [MT_HOME]/lib/MT/App/CMS.pmの210行目あたり$param->{text} = J... [詳しくはこちら]

» test 送信元 The Gibsons! in Hawaii
Milano::Monolog: Bookmarklet文字化け対策 TrackBackの文字化けを解消していい気になっていたら、どこかのサイトでBookmarkletでも文字化けが発生することを知る。 今までその存在を知らなかったBookmarklet... [詳しくはこちら]

» Bookmarkletでの文字化け 送信元 digitrick
Safari で Bookmarklet を使えるようになったと思ったら今度は文字化けに頭を抱える・・・ これって沢山の人が悩んできた問題なのですね・・・ Milano::Monolog: Bookmarklet文字化け対策 以下の要領で解決!! 9行目、SymbolをJcodeに置換 632行目、以下を挿入map { Jcode-... [詳しくはこちら]

» bookmarkletの文字化け 送信元 test
文字化け対策の対策、2時間かかった;; [詳しくはこちら]

» 「MTへ投稿」を使いやすく 送信元 a sweet weblog
lib→MT→App→CMS.pmの631行目を上記のように書き換えてみました。 [詳しくはこちら]

» ここを参考にして 送信元 きんもこ blog版 by coboo
Milano::Monolog: Bookmarklet文字化け対策 ここを参考にしてブックマークレットの文字化けを直したのでニュースに対するコメントが非常に書きやすくなってうれしい.... [詳しくはこちら]

» 再びBookmarkletのテスト 送信元 PandaLove.net Test Weblog
Milano::Monolog: Bookmarklet文字化け対策今までその存在を知らなかったBookmarkletですが、ようやくその姿が明らかになったので、ついでにそちらも強引に解決しちゃいます。... [詳しくはこちら]

» MovableTypeの文字化け対策 送信元 kissysite
Milano::Monolog: Bookmarklet文字化け対策 2002年11月28日 Bookmarklet文字化け対策 TrackBackの文字化けを解消していい気になっていたら、どこかのサイトでBookmarkletでも文字化けが発生することを知る。 今までその存在を知らなかったBookmarkletですが、ようやくその姿... [詳しくはこちら]

» 文字化けについて 送信元 OTEMOTOYA
私のブログ作成記録ブログで紹介いたしました。というか実際本当に助かりました、感謝!ありがとうございました! [詳しくはこちら]

» BookMarklet遵ョ〓〓醇掛遵i 送信元 M-notes
Milano醇g遵e遵ョ[Monolog]醇Jb〓〓〓遵ョ〓〓〓醇u遵ヒ遵G〓〓〓醇g遵ナ遵ゥ遵シ遵H遵ョ醇Jb遵e遵ョ〓〓〓〓遵ナ遵ゥ醇d醇f〓〓遵ゥ遵シ醇d〓〓〓〓〓〓醇g〓遵ゥ遵シ遵H醇f醇件・醇・遵ェ〓醇D遵ゥ遵ケ遵H〓〓〓遵ナc 醇K遵C遵シ醇fbBookMarklet遵ケ醇e遵テ醇O〓醇e醇D遵ゥ遵シ遵ュ遵シ遵コ遵ナ遵Cc 〓... [詳しくはこちら]

» 役立つ解説集 送信元 栗餡―*ぶろぐばぁ*―
ブログカテゴリーにこのサイトで使わせ貰った技集をアップしていこう。 そしてどんどんトラックバックさせて貰おう。 記録しておかないとあたしも忘れるし、一つずつほちりぼちりと。 とりあえず覚書き段階。 ≪役立つ解説集≫ 1.3カラム&センター表示[2xUP CSS] 2.カ... [詳しくはこちら]

» MTをVer.UPしてBookmarkletの文字化けが再発した方は 送信元 N@N
MovableTypeが連日バージョンアップし、Milano::Monologさんが毎回素早い日本語化パッチを公開していただき快適な日々を過ごしています。本当にありがとうございます。さて、そのバージョンアップの中で、ひとつ気になる点が。。。 それはBookmarkletを使用して記事を引用... [詳しくはこちら]

» さらにテスト 送信元 AQU@ BLOG by aqu@stage.org
ブロッククォートをいれてみました. どないでっしゃろ? Milano::Monolog: Bookmarklet文字化け対策mt.cgiが存在する場所から見て、 ./lib/MT/App/CMS.pmを開きます。 最新の2.51だと584行目から590行目を以下のように書き換えます。 if ($q->param('is_bm')) { require ... [詳しくはこちら]

» いまさら 送信元 boxphere.net
Milano::Monolog: Bookmarklet文字化け対策 いまさらトラックバックしちゃいます。 というかこれはメモなのよ。 bookmarklet のカスタマイズがしたいだけなのよ… と。 近々清書し直したいと思います。... [詳しくはこちら]

» 文字化け 送信元 nanablog
Milano::Monolog: Bookmarklet文字化け対策Bookmarklet文字化け対策 if ($q->param('is_bm')) { require Jcode; $param{selected_text} = $param{text}; $param{text} = sprintf qq(%s\n\n%s), Jcode->new(scalar $q->param('link_title'))->euc, Jcode->new(scalar $q->p... [詳しくはこちら]

» 文字化け 送信元 nanablog
ようやくBookmarkletの文字化け対策をしました。 引用文を枠で囲むblockquoteの設定もやっとできました。ふぅっ。 Milano::Monolog: Bookmarklet文字化け対策Bookmarklet文字化け対策 if ($q->param('is_bm')) { require Jcode; $param{selected_text} = $param{text}; $p... [詳しくはこちら]

» Bookmarklet 挿入されるタグの変更 送信元 blog.aneph.jp
Milano::Monolog: Bookmarklet文字化け対策 参考にさせていただきました。 lib/MT/App の639行目を $param{text} = sprintf qq(%s\n\n%s), ってかんじに。 さらにさらに使いやすくなったかな?... [詳しくはこちら]

» テスト 送信元 ばびぶろぐ
てすと Milano::Monolog: Bookmarklet文字化け対策 まだこちらの記事にはコメントが付いていませんね。... [詳しくはこちら]

» test 送信元 @resource
Milano::Monolog: Bookmarklet文字化け対策 Bookmarklet文字化け対策 このエントリは内容が古いです。 最新の日本語化パッチを使用するか、こちらのエントリを参考にしてください。 日本語化パッチを適用した人は、こちらの文字化け対策を行う必要はありません。 TrackBac... [詳しくはこちら]

» http://blog.jetlove.com/archives/200404/26-1633.php 送信元 JETLOVE BLOG
Milano::Monolog: Bookmarklet文字化け対策 ようやくベッドが届きました。 私の部屋の構造的に寝室に持ち込めるかどうか不安でしたが、ベッドは組み立て式だったので余裕で持ち込めました。 配達のお兄さんに組み立ててもらって、部屋の真ん中にどーん♪ 素晴らしい~♪... [詳しくはこちら]

» MovableType 3.0D(en)へ移行 送信元 ハレとケガレのweblog
MovableType 3.0 日本語版が、出るぞ出るぞといわれてたんですがなかなかでないので、本家から英語版の3.0Dを持ってきてそちらに移行してしまいました。... [詳しくはこちら]

» 作業メモ。 送信元 なべぶた小口。
最近MT関係でいじったことのメモ。 [詳しくはこちら]

» 作業メモ。 送信元 なべぶた小口。
最近MT関係でいじったことのメモ。 [詳しくはこちら]

Comments (22)

1

milanoさんありがとうございます。

今日一日でかなり進んだ気がします。
Trackbackの文字化けが解消したかと思うと
もう新しくBookmarkletの文字化けの解消までアップされている。とても頼りになりました。

他の人はTrackbackの対応らしく
まだこちらの記事にはコメントが付いていませんね。
これからどんどん賞賛のコメントが続くでしょう。
それではまた。

2

 TrackBackに引き続き、Bookmarkletまで!!ありがとうございます。
 右クリックして「MT It!」した後、文字化けした部分をわざわざ書き換えていたあの辛い日々は一体なんだったんだろうという感じです。これで、友人にも堂々とMovable Typeをすすめることができます。
 ホントにありがとうございました!!

3

どうも、このURLには %uNNNN という感じでとんできているので、CGI.pm でデコードしたときにはUTF8になっています。というわけで運が悪いと Jcode.pm で変換に失敗することもありそう。

Jcode->new(scalar $q->param('link_title'), 'utf8')->euc,

みたいにしたほうがよさそうです。

4

↑のmiyagawa氏のサイトにも載っていますが、mod_perlでMovableTypeを動かしていると、CGI.pmではなくApache::Request.pmによりデコードされてしまうので、BOokmarkletを使ったときに使用される%uNNNNという形式のアンエスケープがされず、文字化けするとかそういう事以前にタイトルとか選択しておいたテキストとかが日本語にならないという問題が発生するようです。
対策は、、、ワタシにはわかりません。

太鉄:
5

う~ん、どうも動きがおかしいみたいです。
Bookmarkletを開いた際、ログイン処理を経由(クッキーが残っていない)すると文字化け、しない(クッキーが残っている)と正常表示、となります。
まぁ、ダミーでBookmarkletのウィンドウを一つ開いておけば良いだけなのですが。
同じような現象に出会った方はいらっしゃいますでしょうか。
ちなみに、IEのバージョンは6.0.2800.1106、SP1、Q328970、です。

6

あー、気づかれてしまいましたか。
ログインしてなかった場合はログインしてからもう一度Bookmarkletを使えば問題ないのですが、それも面倒ですからね。

どうしても修正したいと言う方は以下の手順で修正してください。

10行目あたり
use Symbol;
の次の行に
use Jcode;

208行目あたり
$param->{text} = $q->param('text');
$param->{link_title} = $q->param('link_title');
$param->{link_href} = $q->param('link_href');

 ↓

$param->{text} = Jcode->new($q->param('text'))->euc;
$param->{link_title} = Jcode->new($q->param('link_title'))->euc;
$param->{link_href} = Jcode->new($q->param('link_href'))->euc;

最初に修正したところ、
require Jcode;
を削除

同じく最初に修正したところ、
Jcode->new(~,'utf8')->euc
と、utf8を入れていた場合はそれを削除
入れていなかった場合は別に問題なし

7

>あー、気づかれてしまいましたか。

気付いてしまいました。(^_^;
何か、対策を催促してしまったみたいで申し訳ないです。
早速適用、無事にログインしていなくとも文字化けしなくなりました。
ありがとうございました!!

8

初心者です。すみません。
UTF-8 の場合は、euc の部分を utf8 にすればいいのでしょうか?あるいは utf-8 なのでしょうか。
お手数ですが教えてください。

9

UTF-8でサイトを作っている人は、Bookmarkletについては何も変更しなくて良いのかもしれません。
何も変更しない状態で、Bookmarkletを試してみてください。それで文字化けしてしまうなら、

Jcode->new($q->param('link_title'))->utf8;

と、eucの部分をutf8に変更してください。

他にわからないことがあったらお気軽にどうぞ。

10

お返事を待たずにutf8で変更してしまっており (^_^;おい
特に問題なさそうなのでそのままにしておきます。
どうもありがとうございました。

11

ちょっと変だったので、元に戻しておきました。
でちゃんと動いております。
ありがとうございました。

12

【Posted by: milano on 2002年11月29日 11:18】の
書き込みのmod_perlでのBookmarklet文字化け
対策ですけど、既に解決済みでしたらすみません。

一応,自分は下記のようにして日本語対応できました。

1)CGI.pmをCPANでバージョンアップ
2)lib/MT/App/CMS.pmを編集
397行目の
  my $q = $app->{query};

  my $q = CGI->new;
に変更したら動きました。
でも,何か他の不具合おきても責任もてません。。。

13

>Hanabusaくん

Apache::Request を使うのやめるワケね。
いいんではないでしょうか。

14

>みらのさん

コンバンワ。
↑の自分のやり方だとまずかったです。
ログイン前だと、エラります。
#ログイン後は直でGETだからいいけど、ログイン前はPOSTでくるから、Apache.pmに標準入力をとられてCGI.pmにリクエストこない。。。

ということでやり方を変更して,Apache.pmでデコードがうまくいかないのは仕方ないとして,
CGI::Cookieさんが%uNNNN形式のURLデコードも
やってくれるので、そっちに変更しました。

具体的にはCGI::CookieとJcodeをuseして,
584行目あたりにある
$param{text} = sprintf qq(<a title="%s" href="%s">%s</a>\n\n%s),

scalar $q->param('link_title'),
の間に以下のコードを挿入。
map {
    my $value = CGI::Cookie->parse('foo='. $_)->{foo}->value;
    jcode($value, 'utf8')->euc;
}

たびたび,汚い書込みしてしまいましてすみません。m(_ _)m

15

もうそこまでくると良いのかどうかわけわからんなぁ。

16

すげぇー。
なにをかくそう、ぼくも mod_perl環境で使ってたのですが、
この bookmarklet の問題が、どうやっても直りませんでした…。

Javascript のお勉強をして、%uNNNN が unicode で、それを
Javascript で unescape すればいいことはわかったのですが、
それを perl でどうすればいいか悩んでおりました…。

CGI::Cookieさんってエラい!
と思ったんですが、CGI::Cookieは、CGI::unescapeを読んでるみたい。
なので、
584行目あたりにある
$param{text} = sprintf qq(<a title="%s" href="%s">%s</a>\n\n%s),

scalar $q->param('link_title'),
の間に以下のコードを挿入。

map { jcode(CGI::unescape($_), 'utf8')->euc }

これでいけました。

17

>milano
正しいのはlibapreqの修正パッチをメンテなに送る行動なのですが、当方は「じつりき」と「えいごどっかいりょく」の両方を持ってなかったので刹那的に現実逃避しました。

>Yoshiki
ぐぐっ!!
俺,InternetMagagineにおこぼれで載るの密かに期待してたけど,詰めが甘かったので,Yoshikiさんに譲ります。

18

練習中に無意味なTrackBackしてしまいました。
恐れ入りますが削除お願い致します。

19

I was going to implement your hack, but it seems like I don't need to. I have MT 2.64 running utf8, and I don't have any trouble with trackback mojibake.

変な日本語で、すみません。Hackをつけようと思ったが、どうも必要ないみたいですね。MT2.64で、UTF8でやっていますが、Trackback文字化けが現れていない。

I am not a perl expert, but in 2.64, was there some change made that fixes this?

PerlのExpertなんかじゃないが、2.64でこれひょっとしてなおっている?

Note that I DID have trouble with mail, and implemented the jcode hacks for that. Now, mail from MT supports kanji just fine.

そうはいっても、2.64でメールが化けていたのでJCODEハックつけたら、直った。

いろいろ役に立つAdvice有難うございます。

20

しつれい。Trackback文字化けではなく、Bookmarklet文字化けです。

21

初心者です。
Bookmarklet文字化けどうやって直したらいいかかいもく見当もつかなかったのですが、こちらにたどり着けて助かりました。文字化けしないととっても便利に使えてうれしい!
ありがとうございました。

22

MTの2.64をeucで動かしています。上記を参考にしてもBookmarklet文字化けが直らずに(スクリプトのエラーなどもでて)困ってましたがYoshikiさんのコメントを参考に
./lib/MT/App/CMS.pm の
map { Jcode->new(CGI::unescape($_))->$charset() }

map { Jcode->new(CGI::unescape($_))->euc }
と一行書き換えるだけで、よくわからないけど文字化け解消!! 感謝です。

Post a commnet

AMN sponsor rolls


著書

実践Web2.0 BOOK 人気ブロガー直伝! 一歩先行くWeb2.0的ワーキングスタイル
ムーバブル・タイププラグインディレクトリ―PROFESSIONAL NETWORK