1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

『转』用String-Multibyte改进Movable Type的中文截断

本帖由 wyh2005-09-26 发布。版面名称:源码讨论

  1. wyh

    wyh New Member

    注册:
    2005-09-20
    帖子:
    119
    赞:
    1
    Movable Type对中文的支持不错,但就是有个老毛病,就是在截断过长的中文时(如接收到的引用通告摘要),出现乱码。这虽不影响正常的使用,但看着就是不爽,更不要说还会影响网页的SEO了。

    怎么解决呢?那就是Perl的String-Multibyte模块。

    你可以采用两种方法安装此模块。一种是作为系统模块,在命令行下输入“ppm install String-Multibyte”;另一种是从这里下载String-Multibyte模块解压缩后,将Multibyte.pm文件和Multibyte目录上传到MT安装目录的extlib目录下。

    安装好模块后,就可以在MT程序中调用。对我们而言,主要是修改两个文件,即\lib\MT\App下的CMS.pm和Trackback.pm。

    打开这两个文件,在@MT::App::Trackback::ISA = qw( MT::App );前加上

    use String::Multibyte;
    my $utf8 = String::Multibyte->new('UTF8');

    随后将需要的$substr和$length函数换为$utf8->substr和$utf8->length。

    我转的,来自thinkjam.org