Windows PC/サーバーで、PHPのソースコードにUTF-8文字を書き込む方法


- Old Counter



標題の件、PHPプログラマーなら「今更・・・」という当たり前のことなんでしょうが、PHPプログラミング歴の浅い筆者には初めてのことだったので、覚書として残します。

商品購入代行ページで使っているWPOnlineStoreのプラグインで、支払い方法が「Cash on Delivery」(代金引換)というのがあり、これを「銀行振込」に変えたいと思い、苦労しました。

当サイトはWindowsサーバーで運用されており、それほど広範ではないものの、ソースコードの変更や改変もしています。そのソースコード編集に使うのも、Windows PCです。
つまり、プログラム編集も、サーバーも、シフトJISマシンです。
ところが、WordPressのソースコードは、UTF-8のエンコードでブラウザーに表示されるようになっています。
そのために、Windows PCで編集してソースコードに追加した日本語は、そのページをブラウザーで表示すると文字化けします。

それを解決する方法が、あったんですね・・・・
mb_convert_encoding()を使うだけでした。

たとえば、問題の「Cash on Delivery」は、元のソースでは
define(‘MODULE_PAYMENT_COD_TEXT_TITLE’, ‘Cash on Delivery’);
define(‘MODULE_PAYMENT_COD_TEXT_DESCRIPTION’, ‘Cash on Delivery’);

と書かれていますが、mb_convert_encoding()を使って
define(‘MODULE_PAYMENT_COD_TEXT_TITLE’, mb_convert_encoding(‘銀行振込’,’UTF-8′,’SJIS’));
define(‘MODULE_PAYMENT_COD_TEXT_DESCRIPTION’, mb_convert_encoding(‘銀行振込’,’UTF-8′,’SJIS’));

と書くことによって、PCで編集したソースコードでも文字化けせずに「銀行振込」と表示してくれます。