Mar 022006
またWordPressプラグインでの日本語文字化け解消方法について、です。素直に日本語化されたプラグインを探してこい、って突っ込みはさておき。
先日StatTraqでの日本語表示でStatTraqプラグインでの日本語文字化け解消方法を説明しましたが、ほぼ同じような考え方でbsuite WordPress Plugin (b2 release)も日本語文字化けを解消できます。
bsuiteの場合、正しく表示できなくなるのはTop Incoming Searchesでの日本語検索文字だけでした。
検索文字列はrefererから取得している情報で、DBにはrefererのままurlencodeされた状態で記録されています。
これが直前にブラウザで利用していた文字コードのままで記録されていますので、それをSELECTしてueldecode()して出力する際に、文字コードをを適切なものに変換してやる必要があります。
mb_convert_encoding()で文字コードを変換するのですが、今回は関数が使用可能かチェックするコードも入れてみました。
--- bsuite/bsuite.php.default Tue Feb 14 22:33:37 2006 +++ bsuite/bsuite.php Thu Mar 2 10:53:56 2006 @@ -412,7 +412,11 @@ if($wrap > 0) $linktext = wordwrap($linktext, $wrap, "<br />\n", 1); - $report .= $before . "<a href=\"" . $url . "\" title=\"" . ($row->tooltip) . "\">" . $linktext . "</a>" . ($row->note) . $after; + if(function_exists('mb_convert_encoding')){ + $report .= $before . "<a href=\"" . $url . "\" title=\"" . ($row->tooltip) . "\">" . (mb_convert_encoding($linktext, get_settings('blog_charset'), "AUTO")) . "</a>" . ($row->note) . $after; + }else{ + $report .= $before . "<a href=\"" . $url . "\" title=\"" . ($row->tooltip) . "\">" . $linktext . "</a>" . ($row->note) . $after; + } } return($report); }
Sorry, the comment form is closed at this time.