修正Twiki4.2.2的一个Bug

| 2 Comments
美国yahoo内部人员文档交流使用的的twiki页面是twiki页面,但是twiki对UTF-8汉字处理不太好,导致一些莫名其妙的问题,如字体从上到下,越来越大。为了解决这个症状,本人跟踪了一下这个原因,应该是twiki的一个bug。

我们知道在firefox里面字体url转码和不转码是没有什么区别的,但是在ie6下必须要url转码,否则ie6就会成为乱码,(ie7正常)于是:
1,修改TWiki/Render.pm文件:
找到函数:
sub makeAnchorName {
在函数末尾修改返回值为:
return urlEncode($anchorName);

接着在该函数后面加上函数urlEncode:

sub urlEncode {
    my $text = shift;
    $text =~ s/([^0-9a-zA-Z-_.:~!*'\/%])/'%'.sprintf('%02x',ord($1))/ge;
    return $text;
}

2,修改TWiki.pm文件:
找到函数:
sub _make_params {
修改:
$anchor .= '#' . shift( @args );

$anchor .= '#' . urlEncode(shift( @args ));
即可。


这次升级TWiki,我发现一个更加简单的修改这个Bug:

  • Version: TWiki 4.0.0-4.2.3+
  • Reason: display
  • You can use tool like vim etc. To edit the lib/TWiki/Render.pm, Add function urlEncodeIntercept (line 437) above sub _linkToolTipInfo {, like this:
    sub urlEncodeIntercept
{
my $text = shift;
$text = crypt($text, "salt");
return $text;
}
  • Find and change (line 427):
    return $anchorName;
  • to:
    return urlEncodeIntercept($anchorName);

Bug地址:http://twiki.org/cgi-bin/view/Main/SimToUtf8



2 Comments

用sub urlEncode {
my $text = shift;
$text =~ s/([^0-9a-zA-Z-_.:~!*'\/%])/'%'.sprintf('%02x',ord($1))/ge;
return $text;
}

使用IE6访问时,apache2 报错:
view: Use of uninitialized value in substitution (s///) at /var/www/twiki/lib/TWiki/Render.pm line 435

line 235:
$text =~ s/([^0-9a-zA-Z-_.:~!*'\/%])/'%'.sprintf('%02x',ord($1))/ge;

你是怎么用的?我有新的patch了,只需要修改一个文件

Leave a comment

Archives

Recent Comments

  • Cnangel: 你是怎么用的?我有新的patch了,只需要修改一个文件 read more
  • spring: 用sub urlEncode { my $text = shift; $text =~ s/([^0-9a-zA-Z-_.:~!*'\/%])/'%'.sprintf('%02x',ord($1))/ge; read more

Pages

Powered by Movable Type 5.2.2

December 2012

Sun Mon Tue Wed Thu Fri Sat
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          

Recent Assets

  • dish_st4.png
  • dish_m5.png
  • dish_3.png
  • dish_two.png
  • dish_6.png
  • dish_1.png.png
  • 照片1028 105.jpg
  • 照片1028 088.jpg
  • 照片1028 084.jpg
  • 照片1028 081.jpg
Creative Commons License
This blog is licensed under a Creative Commons License.

About this Entry

This page contains a single entry by Cnangel published on August 15, 2008 3:37 PM.

PHP 4官方支持结束 was the previous entry in this blog.

使用和制作patch文件 is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.