思路非常简单:根据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 || '');
这个主意有意思,我想在我的BLOG上尝试一下,依照这个原理开发
Posted by: zx.asd at December 7, 2004 03:25 PMWas browsing through blogspot when I stumbled here
Posted by: tit enormous natural at November 13, 2004 05:57 AMParler vouz francais?
Posted by: Jen at November 9, 2004 06:54 PM这是perl吧?
有没有php版本的呀?可以使用到wordpress的
另外,trackback的字体太小,不耐看,MT都是这样,调大点吧。
Posted by: birong at July 11, 2004 10:45 PM第一次PING不出去。
估计:这种动态连接,PING出去时,还不能REQUEST,这样hedong想试图取回该网页的charset就失败了,所以建不了trackback.之后再编辑,因该动态连接已可以request了,所以hedong就可以成功转码了。
但似乎还不彻底,weblog后是一堆方块,没有把发送方的blog名字转为UTF-8