(EUCページが前提ですが)pukiwiki.ini.php の $autolink=2 として「毒」というページを作成し、別のページで「再配布の条件」と入れるとリンクが化けます。もしかしてと思い、ちょっと文字コードを追ってみると
ということは、マルチバイト処理をしていない=偶然にもページ名が一致してしまった場合には化けるということになります。*1
サンプル:
http://cafelounge.net/test/cvs/?%A5%C6%A5%B9%A5%C8 (現在では削除されています)
--- func.php Mon Jul 04 00:09:28 2005 +++ func.new.php Fri Apr 07 21:49:54 2006 @@ -507,6 +507,14 @@ $result = get_autolink_pattern_sub($auto_pages, 0, count($auto_pages), 0); $result_a = get_autolink_pattern_sub($auto_pages_a, 0, count($auto_pages_a), 0); + + if (SOURCE_ENCODING == 'EUC-JP' && $result != '(?!)') { + // Perl memo - Correct pattern-matching with EUC-JP + // http://www.din.or.jp/~ohzaki/perl.htm#JP_Match (Japanese) + $result = '(?<!\x8F)' . $result . + '(?=(?:[\xA1-\xFE][\xA1-\xFE])*' . // JIS X 0208 + '(?:[\x00-\x7F\x8E\x8F]|\z))'; // ASCII, SS2, SS3, or the last + } } return array($result, $result_a, $forceignorepages); }