Trackback乱码:我的解决方法

昨天ZoomQuiet大哥在Trackback完我的帖子后又发了一顿牢骚:

你的 TB 实在是对 GB2312 不识别哪!
赶紧处理一下子是也乎!让MT 也真正国际化吧!

呵呵,这个就是广泛存在于中文Blog上“著名”的Trackback乱码问题——由于Trackback协议并没有考虑不同编码(Charset)的Blog之间发送Trackback Ping需要转换编码而造成的。

我用了一个“诡计”部分解决了这个问题,欢迎大家帮忙测试——向我开Ping ^_^

从目前的情况来看,作为Trackback协议的缔造者MovableType直到他们目前最新版本的MT 3.1中仍然是我行我素… @_@ 看来靠他们解决是不可行的了。国内虽然也有一些人提出可以修改标准TrackBack协议,增加编码设置的方式解决,但是几乎没有Blog程序实行,也是一纸空文。

在目前协议不变的情况下解决这个问题主要考虑两个方面的因素:发送方和接收方。如果任何一方能够主动/被动的根据另一方改变发送/接收内容的编码,即告成功。

我的大学毕业设计实现的Doulog就在这两方面解决了这个问题:发送方可以选择发送的编码;接收方提供多编码的Trackback地址供发送方选择。我今天把其中接收方的部分拿出来改写一下,为MT做了一个Trackback网关,欢迎大家帮忙测试。如果看起来问题不大的话,我将公开源码。

TODO:
目前转码暂时使用的是iconv库,所以不支持iconv的PHP主机可能用不了。不过我Doulog实现中实际使用的是我自己写的编码转换Douconv库,虽然效率要低一些,不过大家都可以用,最终版本的时候我可以都加上供大家选择。MT是用Perl写的,但是我确实不怎么会写Perl的程序呢,所以只好用PHP写了这么一个网关,最好的方法还是哪个牛人用这个方法给MT写一个插件。最后我现在只是实现了一半,即接收方,发送方暂时还是欠奉…

刚刚又想起来一点,其实Trackback还有Auto-discovery的功能,我这个解决方法就不可能实现了,正道还是在接收方加上自动编码识别功能… @_@

附: 前车之鉴
消除收到trackback的乱码乱码 From 竹笋炒肉
Trackback对中文世界是一种考验 From 投笔从戎亦有时…

13 Responses to “Trackback乱码:我的解决方法”

  1. Zoom.Quiet Says:

    呜乎哀哉!
    使用 GB2312 方式 TB :::

    有错!….
    An error occurred: 1 Need a Source URL (url).

  2. Zoom.Quiet Says:

    嗯嗯!没有办法引用,就在原来处进行了说明去看:

    http://www.originclub.net/zoomquiet/nublog/index.php?itemid=274

    ps.

    文无第一,武无第二!
    技术方面让我们互为老师吧!别大来大去的是也乎!。。。

  3. Chris Says:

    嘿嘿^我改了很久搞不定,后来干脆,只把ping我的URL取回来,其他不要了.没办法的办法啊,人太消极了,哈哈.

  4. ev Says:

    希望能看到源代码。

  5. 平生一笑 Says:

    对不起,引用通告发的太多了,发傻了:(

  6. [NO BLOG NAME] Says:

    [NO TITLE]

    [NO EXCERPT]

  7. Just 平生一笑 Says:

    TrackBack乱码,没有安装Text::Iconv模块的解决办法

    近日一直被MT引用通告乱码所困扰,虽然Google到了Hedong的消除收到trackback的乱码文章,还有Windix的Trackback乱码:我的解决方法。但一由于我的空间上没有安装CGI的Text::Iconv模块,二Windix并没有

  8. Just 平生一笑 Says:

    TrackBack乱码,没有安装Text::Iconv模块的解决办法

    近日一直被MT引用通告乱码所困扰,虽然Google到了Hedong的消除收到trackback的乱码文章,还有Windix的Trackback乱码:我的解决方法。但一由于我的空间上没有安装CGI的Text::Iconv模块,二Windix并没有

  9. Just 平生一笑 Says:

    TrackBack乱码,没有安装Text::Iconv模块的解决办法

    近日一直被MT引用通告乱码所困扰,虽然Google到了Hedong的消除收到trackback的乱码文章,还有Windix的Trackback乱码:我的解决方法。但一由于我的空间上没有安装CGI的Text::Iconv模块,二Windix并没有

  10. Leench's Blog Says:

    http://leench.vicp.net/blog/leenbook/guestbook.php

  11. Leench Blog Says:

    test

    chinaese

  12. Leench Blog Says:

    中文

    中文

  13. http://www.uuzone.com/blog/mary2004/ Says:

    UUZONE

    UUZONE