*はじめに [#vea19e80]
Pukiwikiで日本語(マルチバイト文字)で始まるページ名を付けると,正しく表示されません.
PukiWikiで日本語(マルチバイト文字)で始まるページ名を付けると,正しく表示されません.
途中にシングル・バイト文字が含まれていると最初のシングル・バイト文字以後だけが表示されます.
PukiWiki 1.4.7とPHP 5.2.9で確認しました.
*原因 [#n509440a]
PHP5のbasenameメソッドのバグらしいです.
*解決方法 [#uc64d46b]
basenameメソッドの替わりにmb_ereg_replaceメソッドを使います.
skin/pukiwiki.skin.phpの
#geshi(php){{
<h1 class="title"><?php echo ($is_page) ? htmlspecialchars(basename($vars['page'])):$page ?></h1>
}}
という部分を
#geshi(php){{
<h1 class="title"><?php echo ($is_page) ? htmlspecialchars(mb_ereg_replace('^.*/', '', $vars['page'])):$page ?></h1>
}}
に置き換えます.
*参考情報 [#q697d0b0]
-[[日本語添付ファイル名の文字化け対策 - XOOPS環境の構築 - IR log:http://ir.iwate-u.ac.jp/irlog/index.php?XOOPS%B4%C4%B6%AD%A4%CE%B9%BD%C3%DB#ya37af6a]]
-[[【PHP】pathinfo、basename関数の日本語ファイル名取得問題 - 作業日報:http://blog.jojo.jp/?eid=632412]]