IE で個別ページへのリンクがきかない

IE では、ページ名に日本語が混じっていると、メニューからそのページにジャンプできないことがあります。

これは、IEが日本語アドレスをなんの処理もせず読み込んでしまうためで、サイトのほうでエンコードしておく必要があります。(情報提供:kojiさん、どん兵衛さん)
対応策(1)
$sContent を urlencode する。

libraries/Trash.php の最後、「function change2Url」の
trim( $sContent )
trim( urlencode( $sContent ) )
とします。(教示:どん兵衛さん)

しかし、このままでは、エンコード後の「%」が、さらに「- 」に置き換えられてしまうため、
  Array( ' ', '»', '/', '$', '¥'', '"', 
'~', '¥¥', '?', '#', '%', '+', '^', '*', '>', 
<', '@', '|', '&quot;', '%', ':', '&', ',', 
'=', '--', '--', '[', ']' ),
  Array( '-', '',        '-', '-', '',   '',  
'-', '-',  '-', '-', '-', '-', '-', '-', '-', 
'-', '-', '-', '-',      '-', '-', '',  '-', 
'-', '-',  '-',  '(', ')' ),
  Array( ' ', '&raquo;', '/', '$', '¥'', '"', 
'~', '¥¥', '?', '#', '+', '^', '*', '>', '<', 
'@', '|', '&quot;', ':', '&', ',', '=', '--', 
'--', '[', ']' ),
  Array( '-', '',        '-', '-', '',   '',  
'-', '-',  '-', '-', '-', '-', '-', '-', '-', 
'-', '-', '-',       '-', '',  '-', '-', '-',  
'-',  '(', ')' ),
とします。

しかし、「&raquo;」はあるのに、なんで「&laquo;」はないのだろう? 「%」が2つあるのも変だ。
対応策(2)
ページ名を表示させないで番号だけにする。

core/pages.php の300行あたり
$this->aPages[$aExp[0]]['sLinkName'] = '?'.change2Url( $this->aPages[$aExp[0]]['sName'] ).','.$aExp[0];
$this->aPages[$aExp[0]]['sLinkName'] = '?,'.$aExp[0];
とする。(教示:どん兵衛さん)
対応策(3)
trim の前ではなく、str_replace 後に urlencode するのがよいのではないかと考え、V2.6 ではこうしました。こちらをご覧ください。
このページを印刷する
戻る