Movable Type 的 wide character in subroutine entry Bug

这是一则只写给国内几百个 Movable Type 用户看的信息。

Movable Type 5 的用户可能会遇到关于留言功能的一个小Bug,系统在用户留言的时候提示留言失败(实际上留言已经成功),”wide character in subroutine entry”,搜索后可以参考这则 信息 以及 困扰已久的 MT5 的 bug 解决了,但对于没有使用的 Markdown 插件的用户,这两个地方提到的办法只是给了一个思路。更合适的解决办法是打开 MT 的 Debug 模式,然后提交留言,系统提示信息可以让你发现具体是哪一个脚本出错,这次遇到的是 EncWords.pm 176 行提示错误。

于是,修改该文件,在开头加入:

use Encode qw(encode_utf8);

将 176 行的代码:

encode_base64($str, '');

修改为:

encode_base64(encode_utf8($str), '');

重新提交留言测试。MT 5.01、5.02 与 5.03 测试通过。

说句题外话,Movable Type 日渐式微,国内用户也是越来越少了。如果不是用 Perl 开发,比如用 PHP ,可能现在也未必是 WordPress 的天下。基因决定命运,对某些创业企业来说是这样。

EOF

更新:后续的几个版本也有同样的问题,需要手工修改一下。Movable Type 越来越没落了。

此文作者:, 位于 SiteLog 分类 标签: on .
转载须以超链接形式标明文章原始出处和作者信息及版权声明.

11 thoughts on “Movable Type 的 wide character in subroutine entry Bug

  1. Ruan YiFeng

    奇怪,我好像从来没有遇到过这个问题。我的版本是5.02。
    另外,MT变成今天的样子,完全是咎由自取。Six Apart直到今天还在搞社区版和Pro版,真是脑袋被大象踩过了。

    Reply
  2. leavic

    天啊,终于有人站出来说句话了,之前也是定位到EncWords.pm有问题,大概也知道是编码的事,就是不知道怎么改才对,太感谢了!

    Reply
  3. leavic

    唉,还是encwords.pm第176行的问题,明明改过了,很诡异的,之前还出现过5.02全新安装没问题,导入之前的数据库之后就开始出这个错误。
    好在没几篇文章,我已经全部删掉重装5.03了,好歹算是没了这个问题。

    Reply
  4. liufeng

    原来不用 Markdown 也会有这种问题啊,我还以为只有我这种可怜的 Markdown 用户才有这种遭遇呢。Movable Type 用的人就不算多,在加上 Markdown,我当初在网上搜寻的时候几乎绝望了。再加上去年底和 6A 的 Beau Smith 就这个问题邮件交互了半天,最后对方竟然不鸟我了。
    问题解决后,我在 MT 的 bug 管理系统里提交了解决方案。我一直以为以 6A 这种规模的公司,就算有再重的工作量,遇到这种小 patch 应该可以马上改进吧,(也许我错了),结果几个版本过去了问题依旧。
    昨天借 VPS 开通,我算是放弃了 MT,开始用 WordPress 了。装上 WP 后才从后台看到了你链接了我的文章,之前在 MT 的后台里一点提示都没有。我估计 MT 的那个 trackback 又一次失效了。。。
    我现在感觉不到 MT 的好来了,只剩下怀念了。

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *