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.