« プーリニ・サン・ピエール(p) | メイン(m) | サンオーバン »(n)

MT-Blacklistを使用した場合の文字化け対策

greenplastic.netのyosshiさんに、MT-Blacklistプラグインを導入するとワタシの文字化け対策が無効化されてしまうと言う報告をいただきました。
早速調査したところ、MT-Blacklistプラグインは、lib/MT/App/Trackback.pmのメソッドを置き換えているようです。
ワタシがここでやっているのと同じ方法ですね。

ということで、MT-Blacklistを導入する場合は、以下のように書き換えれば大丈夫だと思います。動作未確認。不具合が起こったら教えてください。
初版:2003/11/06
追加:2004/03/03 Ver1.63に対応

    MTBlPing.pm
  1. 42行目以降を書き換え
    my($title, $excerpt, $url, $blog_name) = map scalar $q->param($_),
                                             qw( title excerpt url blog_name);

    MT::App::Trackback::no_utf8($tb_id, $title, $excerpt, $url, $blog_name);
      ↓
    my($title, $excerpt, $url, $blog_name, $icode) = map scalar $q->param($_),
                                             qw( title excerpt url blog_name charset);

    MT::App::Trackback::no_utf8($tb_id, $title, $excerpt, $url, $blog_name);
    require Jcode;
    my $charset = {'Shift_JIS'=>'sjis','ISO-2022-JP'=>'jis','EUC-JP'=>'euc',
                   'UTF-8'=>'utf8'}->{$app->{cfg}->PublishCharset} || 'utf8';
    my $incoming = {'shift_jis'=>'sjis','iso-2022-jp'=>'jis','euc-jp'=>'euc',
                    'utf-8'=>'utf8'}->{lc($icode)} || Jcode::getcode($excerpt . $title . $blog_name);
    $title = Jcode->new($title, $incoming)->$charset();
    $excerpt = Jcode->new($excerpt, $incoming)->$charset();
    $blog_name = Jcode->new($blog_name, $incoming)->$charset();

  2. 108行目以降を書き換え
    if (length($excerpt) > 255) {
        $excerpt = substr($excerpt, 0, 252) . '...';
    }
      ↓
    if (length($excerpt) > 255) {
        $excerpt = substr(Jcode->new($excerpt, $charset)->euc(), 0, 252);
        if ($excerpt =~ /\x8F$/ or $excerpt =~ tr/\x8E\xA1-\xFE// % 2) {
            chop $excerpt;
        }
        $excerpt = Jcode->new($excerpt . '...', 'euc')->$charset();

    }


« プーリニ・サン・ピエール | メイン | サンオーバン »

Trackbacks

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

この一覧は、次のエントリーを参照しています: MT-Blacklistを使用した場合の文字化け対策:

» スパム対策:MT-BlackList1.5リリース 送信元 Tak's ウエブログ
こちらのページからダウンロードできます。 1.0βには、トラックバックすると日本語コード変換のパッチが効かなくなるという問題点がありましたが、1.5では解決されたようです。作者の Jay Allen 氏も、1.0とはだいぶ中身を変えたからではないかということでした。このサイト... [詳しくはこちら]

» MT-Blacklist 1.62 beta 送信元 Tak's ウエブログ
1.62βを入れてみました。 milano さんが Milano::Monolog:MT-Blacklistを使用した場合の文字化け対策 で指摘されているパッチを、1.62βでも同じように当てる必要があるようです。milano さん、ありがとうございます。 1.62βで Blacklist.pm にパッチを当てる場所は、1. が... [詳しくはこちら]

» MT-Blacklist 1.62 送信元 Tak's ウエブログ
リリースされたそうです。 ページはこちら。 トラックバック文字化け対策パッチを当てるところを探してみました。... [詳しくはこちら]

» 予定 送信元 w e b l o g ___ re-urge.com
シフトで休み。 予定通りなにもせず。昨日は日記も書いてない。  ダメですな。いろいろ。 あ、WinampPlaylistは日本語も通るようになった。MT-Blacklistの影響だったらしい。Millanoさんとこの記事を参考に対処。最新バージョンの1.6.2では対処部分が「MTBlPing.pm」にある... [詳しくはこちら]

» トラックバックの文字化け 送信元 花と写真とblogと。
なんやら、、コメントスパムから始まって、MTのバージョンUPと頭の中がぐるぐる回っています。 それにせっかくトラックバックしていただいたのに文字化けしているし・・・・(;´o`)トホホ あせりまくりで検索して、やっと解決法を見つけました。BlackListはMalino氏の... [詳しくはこちら]

» Trackback文字化け解消(?) 送信元 H&K
いま一度文字化け対策を見直し。 これまでもTrackbackの文字化け対策に関してはいろんなサイトさんをチェックしてたのですが何故かウチだけうまくいかないようで、諦めかけていたのですが、もしや・・・とキチンとアップしたつもりのMTBlackListを慎重にチェック。しかし... [詳しくはこちら]

» スパムコメント対策 送信元 くえりの散策記
以前からスパムコメントが多数見られたので対策をしました。「MT-BlackList1」を導入しました。導入方法は MT-Blacklist導入2 を参考にしました。このプラグインを導入するとトラックバックが文字化けするらしいので、その対策を MT-Blacklistを使用した場合の文字化け対... [詳しくはこちら]

» スパムコメント対策 送信元 くえりの散策記
以前からスパムコメントが多数見られたので対策をしました。「MT-BlackList1」を導入しました。導入方法は MT-Blacklist導入2 を参考にしました。このプラグインを導入するとトラックバックが文字化けするらしいので、その対策を MT-Blacklistを使用した場合の文字化け対... [詳しくはこちら]

» コメントスパム対策。 送信元 東京フレンチキス
とうとうウチのblogさんにもコメントスパムなるモンがやってきました・・・ 主に外国のバイアグラとか売る宣伝みたいなのらしいですけどわしゃそんなモン必要ないわい!!! ってな感じです。 でもウチに書かれてたのって「レイプがなんたらかんたら・・・」とか「ち●こ... [詳しくはこちら]

» コメントスパム対策 送信元 rolasip::weblog
今朝見ると15個くらいコメントスパムが。 のんびりやってるこんなサイトにもやってくるんですね。 でもやられると、あんまり気分良くないです。 ということでMT-Blacklistを導入しました。 設定メモ。 1. MT-Blacklistサイトからダウンロードして展開(現在はver1.6.2)... [詳しくはこちら]

» コメントスパム 送信元 でね。
ついに、この「でね。」にもコメントスパムが書き込まれました。このblogはコメント自体が少ないので、どうでも良いと言えばどうでも良い(^^;のですが、なんとなく気分が良くないので、対策をすることにしました。 ということで、MT-Blacklist v1.63 beta (rc2)を導入しよ... [詳しくはこちら]

» mt-blacklist TBの文字化け対策 送信元 takeratta::Blog
Milano::Monolog: MT-Blacklistを使用した場合の文字化け対策 天下のmilanoさまリスペクトで、エントリーしてクリップします。 milanoさま、いつも感謝しています。 追加:2004/03/03 Ver1.63に対応 MTBlPing.pm 42行目以降を書き換え my($title, $excerpt, $url, $blog_n... [詳しくはこちら]

» MT-Blacklist 送信元 spareluv's savablog
大量のコメントスパムが来ました。いままで来てなかったので何にも対策してませんでした。movableの管理メニューから消すのがめんどいのでphpMyAdminで直接MySQLのデータを削りました。やっぱりphpMyAdminは便利ですね。 で、ググって見るとMT-Blacklistなんて物が定番み... [詳しくはこちら]

» MT-Blacklist 送信元 spareluv's savablog
大量のコメントスパムが来ました。いままで来てなかったので何にも対策してませんでした。movableの管理メニューから消すのがめんどいのでphpMyAdminで直接MySQLのデータを削りました。やっぱりphpMyAdminは便利ですね。 で、ググって見るとMT-Blacklistなんて物が定番み... [詳しくはこちら]

» そうそう MT-Blacklist をインストールしましたが。。 送信元 わがやのうんこ
1.62 をインストール。でも An error occurred: Can’t locate object method “load” via package “MT::PluginData” (perhaps you forgot to load “MT::PluginData”?) at /path/to/extlib/jayallen/Blacklist.pm line 2878 とエラーをはきます。対処法は MT-Blackli... [詳しくはこちら]

» スパムコメント?コメントスパム?への対応 送信元 のまのしわざ
最近スパムコメント(コメントスパム?)が定常的にやってくるので流石に対応してみることにしました。... [詳しくはこちら]

» MT-Blacklistを導入 送信元 HETEROTOPIA
コメントスパム対策としてMT-Blacklistを導入しました。 参考にさせていただいたのは以下のサイトです。 MT-Blacklist設置、MT-Notifierとの共存(alfabeat) MT-Blacklistを使用した場合の文字化け対策(Milano::Monolog)... [詳しくはこちら]

» MT-Blacklistを導入 送信元 HETEROTOPIA
コメントスパム対策としてMT-Blacklistを導入しました。参考にさせていただいたalfabeatさんとMilanoさんに感謝! [詳しくはこちら]

» MT-Blacklist Ver.1.63導入 送信元 PF::LOG
MT-Blacklist Ver.1.63導入時の変更点と注意 [詳しくはこちら]

» MT-Blacklistでの文字化け 送信元 KUMALOG
Milano::Monolog: MT-Blacklistを使用した場合の文字化け対策MT-Blacklistを使用した場合の文字化け対策 greenplastic.netのyosshiさんに、MT-Blacklistプラグインを導入するとワタシの文字化け対策が無効化されてしまうと言う報告をいただきました。 MT-Blacklistをイン... [詳しくはこちら]

» MT-Blacklist 送信元 複眼中心
ボクのPerlの知識では Movable Type の編集ができなかったため、MT-Blacklistを導入することで対処することにした。MT-BlacklistはMT標準のIPアドレスによるブラックリストではなく、迷惑コメントに典型的な文字列をマッチさせて判断する仕組みだ。... [詳しくはこちら]

» MT-Blacklist導入 送信元 What's new? +diary (a kind of, not daily)
 MT-Blacklistごく最近導入。 コメントスパムをちくちく貰い始めてうざかったのだけど、設置に失敗していたのだな。:D あまりよく読まずに設置を試みて→動かね~→まぁいいやって状態だった。原因はmt-blacklist.cgi関連だけを置いて、YAML関連を置いていなかったのでし... [詳しくはこちら]

» スパム対策 送信元 ひさしぶりのCyberspace Ver. 2.0
コメント欄に残していくスパムが結構くる為、対策しました。 前に対策したものはどうやらうまく動いていない感じです。しょうがないのでMT-Blacklistをインストールしました。 以下はメモとして残しておきます。... [詳しくはこちら]

» スパム対策 その3 送信元 AS iT iS
spammers meeting さんを参考にさせていただいて、日ごと禁止 IP 設定を増やしてますけれども( [cipher]さん、thx! )、やっぱりちょこちょこやって来てます。はー。 で、今度は [詳しくはこちら]

» コメントスパムがたまぁにあるので 送信元 Ruby site
おいらんとこのよーな、ちまちまぷにぐになサイトでも、コメントスパマーさんたちはやってきたりしている。 ヒマなんだねぇと思いつつ。 おひら的には気にしてないのでいいのだが、さすがにリンク先が問題なサイトだとちとここを見に来てくれている希なる人々に悪いなぁと... [詳しくはこちら]

» スパム対策:MT-Blacklist 送信元 papativa.jp
スパム対策としてMT-Blacklistを導入することにした。 導入にあたっては、PRO' LOGUE「MT-Blacklist導入」とMilano::Monolog「MT-Blacklistを使用した場合の文字化け対策」を参考にさせて頂きました。 しかしながら、このままだと、MT-Notifier(コメントに返信があったら... [詳しくはこちら]

» MT-Blacklist導入してみました 送信元 BCC - Brain Carbon Copies
 MT-Blacklistってのを導入してみました。 配布物にはドキュメントが含まれていないので、オンラインドキュメントを見ての導入です。  さらに、Milanoさんのパッチも当てて、文字化け対策もしました。  今頃導入した理由は、ようやくこのblogにもスパムが届くようにな... [詳しくはこちら]

» MT-Blacklistでスパムを撃退! 送信元 スズキシンヤの覚え書き
お気づきの方がいらっしゃると思いますが、このページにはなんともいかがわしいスパムコメントが投稿されます。いつもそれをちまちま削除していたんですが、もう我慢できま... [詳しくはこちら]

» MT-Blacklistプラグイン導入 送信元 |: caramel*vanilla 2 :|
コメントスパム防止のためにいくつか対策してたんですが数日前まとめてやってきやがりました。きままにポロポロさんで紹介されてる半角英数字のみのコメントをはじく方法も... [詳しくはこちら]

» ブログにおけるスパム対策 送信元 ぼっちの葉隠日記
みなさんスパム対策してますか?ウチにもついに来ましたよコメントスパムが!ブログにおける、メールスパム、コメントスパム、トラックバックスパムの対処法です。 [詳しくはこちら]

» MT-Blacklistを使用したスパムコメント/トラックバック対策 送信元 自宅でウェブログサーバ立ち上げ
最近、カジノサイトより、約30回/日近くも迷惑コメント(SPAM:スパム)が来るようになり、削除に大変な労力が必要になったので、スパムコメント対策をうつことにし... [詳しくはこちら]

» コメントスパム再来 送信元 buslog
15日深夜〓16日未明にかけてコメントスパムが入りはじめ、その後もぞくぞくと。今日の夕方の時点で18件になりました。まぁ、まだマシな数ですね。 対策したのでその... [詳しくはこちら]

» 9/30の作業記録 送信元 shorttrack.jp
朝の時間を利用して、昨日課題としてあげた MT-Blacklist と MT-Notifier を設置。ついでに Blacklistupdater も入れて c... [詳しくはこちら]

» 9/30の作業記録 送信元 shorttrack.jp
朝の時間を利用して、昨日課題としてあげた MT-Blacklist と MT-Notifier を設置。 [詳しくはこちら]

» トラックバック文字化け対応 送信元 やすきちの部屋
mt-blacklist入れたらトラックバックが文字化けする~ ということでMilano::MonologさんのMT-Blacklistを使用した場合の文字化け... [詳しくはこちら]

» トラックバック時の文字化け 送信元 ネタの探求
スパムコメントの嵐でお伝えした設定のままだと、トラックバック時に文字化けを起こしてしまう現象が起こり、それに対応してなかった。 Milano 氏の 対策を参考に... [詳しくはこちら]

» MT-Blacklist の導入 送信元 あるネットワーク管理者(よっぱらい)の日常
細々とですが、コメントスパムがやってきます。だんだん面倒になってきたので、MT-Blacklist を試してみようかと思います。 まずは、MT-Blacklis... [詳しくはこちら]

» MT-BLACKLIST 送信元 COMPUTER
どーにも最近SPAMがよーくるのですわ。 最初のうちは日に1個2個だったのでメニューから消しましたがいい加減まとめて10個も来るとやる気も失せます。 てわけでア... [詳しくはこちら]

» MT-Blacklist Version 1.6.5の導入 送信元 talk to oneself 2
MT-Blacklistを導入することにした。 [詳しくはこちら]

» 【175】迷惑コメントへの対策 送信元 エッセイのすすめ
ここを覗いていただいている読者の方々の中にはお気づきになられた方もいらっしゃると思いますが、このページ右側の「読者の方々から」の欄に、時々広告っぽい書き込みが大... [詳しくはこちら]

» MT-Blacklistの導入 送信元 YUU MEDIA TOWN@Blog
とりあえず ・MT-Blacklist を入れてみました。... [詳しくはこちら]

» Comment Spam 送信元 7-oceans
コメントスパム。ブログを立ち上げて暫らくすると来るのがこれ。いわゆる迷惑コメント。携帯の迷惑メールみたいなものだと思って頂ければ判りやすい。回避策がいくつかある... [詳しくはこちら]

Comments (12)

1

 どうも、取り上げていただいてありがとうございます。
 早速、Blacklist.pmを書き換えました。あとは、どなたか異文字コードな方がトラックバックしてくれるのを待つのみです。
 mt-trackback-ja.plと同じ方法だということでしたので、こっちは外しました。
 どうも、ありがとうございます。
(近所にカルフールっていうフランスのスーパーマーケットが出来てチーズに興味がわいております。でも、青カビチーズはダメでした)

2

 連続コメント、失礼します。
 もしかして、ボクは勘違いしてるのかもとふと思ったので、確認させてください。今回教えていただいたBlacklist.pmの書き換えではトラックバックの文字化けが解消されるのですよね。それで、この書き換えではトラックバックする側に対策が施されるのか、それとも受信側に施されるのか、どちらなのでしょう。
 また、MT-Blacklistのサイトでは、MT::App::Comments.pmとMT::App::Trackback.pmに影響が出ると書いてありました。CMS.pmについては何も書いていなかったと思います。
 一度にたくさん書いてすみません。

http://www.jayallen.org/projects/mt-blacklist/v1.61b/#troubleshooting

3

失礼しました。
メソッド置き換えはlib/MT/App/Trackback.pmでしたね。

で、対策が施されるのは受信側です。
送信側はMT-Blacklistは置き換えていないので、修正の必要はないでしょう。

JEFF:
4

周りにCGIに詳しい友人がいないので質問させて下さい。
ここを参考にBlacklistをプラグインしたときに、エントリー中のトラックバックをクリックすると、エラーが表示されます。

my($title, $excerpt, $url, $blog_name, $icode) = map scalar $q->param($_),
?????????????????????????????????????????qw( title excerpt url blog_name charset);

MT::App::Trackback::no_utf8($tb_id, $title, $excerpt, $url, $blog_name);
require Jcode;
my $charset = {'Shift_JIS'=>'sjis','ISO-2022-JP'=>'jis','EUC-JP'=>'euc',
???????????????'UTF-8'=>'utf8'}->{$app->{cfg}->PublishCharset} || 'utf8';
my $incoming = {'shift_jis'=>'sjis','iso-2022-jp'=>'jis','euc-jp'=>'euc',
????????????????'utf-8'=>'utf8'}->{lc($icode)} || Jcode::getcode($excerpt . $title . $blog_name);
$title = Jcode->new($title, $incoming)->$charset();
$excerpt = Jcode->new($excerpt, $incoming)->$charset();
$blog_name = Jcode->new($blog_name, $incoming)->$charset();

上記のように書き換えると、「qw( title excerpt url blog_name charset);」の行で以下の様なエラーが出てきます。

Unrecognized character ?x8E at extlib/jayallen/MTBlPing.pm line 40.
Compilation failed in require at plugins/Blacklist.pl line 138.

どのようなエラーなのか分からないのでどう対処していいのか分かりません。
一度プラグイン自体を入れ直してみたのですが、うまく行きません。
最近スパムが届くようになって来たので、どうにかしたいのです。
もし原因が分かるようでしたら教えて下さい。
http://omoteyomi.mods.jp/blog/archives/001006.html

5

>JEFFさん

半角スペース以外の文字列が入っているのかも。

JEFF:
6

ありがとうございます。
俺もそれを考えて、その行を手打ちで直してみたのですが、エラーは変わりませんでした。
編集する文字コードがいけないのかな?

JEFF:
7

お騒がせしました。
同じエラーが別な場所で起こっていた事に気がついていなかっただけだったみたいです。
教えてくれてありがとうございます。

8

はじめましてspareluvと申します。
(手違えで2回トラックバックした者です。すいません。)
日本語化パッチも使用させていただいております。感謝です。
最近スパムが多くて困っていました。パッチを当てましたが今のところ問題ないようです。

9

僕の場合、JEFFさんの場合とは違って、各エントリのトラックバックのリンクをクリックすると、
MT::App::Trackback=HASH(0x8069bc0) "my" variable $title masks earlier declaration in same scope at extlib/jayallen/MTBlPing.pm line 42.
MT::App::Trackback=HASH(0x8069bc0) "my" variable $excerpt masks earlier declaration in same scope at extlib/jayallen/MTBlPing.pm line 42.
MT::App::Trackback=HASH(0x8069bc0) "my" variable $url masks earlier declaration in same scope at extlib/jayallen/MTBlPing.pm line 42.
MT::App::Trackback=HASH(0x8069bc0) "my" variable $blog_name masks earlier declaration in same scope at extlib/jayallen/MTBlPing.pm line 42.
と表示されます。
これはどういう意味でしょうか。
不具合だったら、直すことはできますか。
よろしくお願いします。

10

>おぐらじおさん

簡単に言うと、
$titleとか$excerptとか$urlとか$blog_nameとかが2回定義されてます
って感じのエラーです。

エントリ中、矢印より上の部分を下の部分に書き換えるんですよ。
追記するのではないですよ。

11

あー、そうだったんですね。
僕の間違いで追記してしまっていました。
修正したら、メッセージは出なくなりました。
ありがとう、milanoさん。

FINE [TypeKey Profile Page]:
12

はじめまして。MT導入時からmilanoさんのブログには大変お世話になっております。
つきましては、最初の御挨拶が質問になってしまい、大変恐縮なのですが…。

こちらでもご紹介されているMT-Blacklistを私のブログにもアップロードしてみたのですが、
何度試しても下記の状態になってしまいます。
(なお、私のMTは3.0で、サーバーではDBが使用可です)

―――

■以下、mt-bl-load.cgi起動時に表示

Bad ObjectDriver config: Your DataSource directory ('./db') does not exist.

■以下、mt-blacklist.cgi起動時に表示

An error occurred:
Can't locate Storable.pm in @INC (@INC contains: ../../extlib ../../lib /usr/local/lib/perl5/5.6.1/i86pc-
solaris /usr/local/lib/perl5/5.6.1 /usr/local/lib/perl5/site_perl/5.6.1/i86pc-
solaris /usr/local/lib/perl5/site_perl/5.6.1 /usr/local/lib/perl5/site_perl .)
at ../../lib/MT/PluginData.pm line 9. BEGIN failed--compilation aborted
at ../../lib/MT/PluginData.pm line 9. Compilation failed in require
at ../../lib/MT/Plugin.pm line 58. BEGIN failed--compilation aborted
at ../../lib/MT/Plugin.pm line 58. Compilation failed in require
at ../../extlib/Blacklist/Plugin.pm line 14. BEGIN failed--compilation aborted
at ../../extlib/Blacklist/Plugin.pm line 14. Compilation failed in require
at ../../extlib/Blacklist/App.pm line 18. BEGIN failed--compilation aborted
at ../../extlib/Blacklist/App.pm line 18. Compilation failed in require
at ../../extlib/Blacklist/App/CMS.pm line 14. BEGIN failed--compilation aborted
at ../../extlib/Blacklist/App/CMS.pm line 14. Compilation failed in require
at mt-blacklist.cgi line 38.

―――

プラグインの話でmilanoさんに質問してよいものか迷いましたが、何か対策がございましたら是非ご教示願います。

(実は、自分で調べていたら、
http://www.jayallen.org/comment_spam/forums/index.php?showtopic=2&st=0&#entry2
こちらが出てきて途方にくれています…。DBではダメだということなのでしょうか…。)

Post a commnet

AMN sponsor rolls


著書

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