消除收到trackback的乱码乱码      [ 来自:竹笋炒肉 ]
  思路非常简单:根据trackback ping中的url,将发送ping的页面除回来,然后解析其编码,如果是gbk或gb2312,则进行gb2312--->utf-8的转换。(注:我的blog用的是utf-8编码)
  代码如下:

#################convert gb2312 into utf-8 if necessary#######
require Text::Iconv;
require LWP::UserAgent;
my $ua = LWP::UserAgent->new;
my $req = HTTP::Request->new(GET => $url);
my $res = $ua->request($req);
if ($res->is_success) {
my $content=$res->content;
if ($content =~ /text\/html.*charset=.*gb.*>/gi ){
my $converter = Text::Iconv->new("GB2312","UTF-8");
$excerpt = $converter->convert($excerpt);
$title = $converter->convert($title);
$blog_name = $converter->convert($blog_name);
}
}
##############end convert gb2312 to utf8##################


  将上述代码,加入到$MTHOME/lib/MT/App/Trackback.pm的ping函数中

my $ping = MT::TBPing->new;
$ping->blog_id($tb->blog_id);
$ping->tb_id($tb_id);
$ping->source_url($url);
$ping->ip($app->remote_ip || '');
几行的前面即可。
  注意,如果系统安装了mt-blacklist,则需要修改$MTHOME/extlib/jayallen/MTBlPing.pm,位置相同

Posted by Hilton  

本日志由 胡子 于 2004-12-25 23:08:07 发表到 学习随笔 中,目前已经被浏览 1216 次,评论 0 次;

作者添加了以下标签: 消除收到trackback乱码问题