2011年02月16日
PHPの文字化け対応mb_regex_encoding
PHPで文字化け発生です。
PHPでプログラムを組んでいると、よく文字化けします。
ということで早速結論です。
【症状】
文字コードはEUC-JP
音引き(伸ばし棒)の部分で文字化け
例1
mb_ereg_replace('×', '○', '×アイウエオ');
⇒文字化けしない
例2
mb_ereg_replace('×', '○', '×アイウエオー');
⇒音引き(伸ばし棒)の部分だけ文字化けする
【対応】
mb_regex_encoding( "EUC-JP" );
という文を記述しておく。
例えば【症状】例2の場合
mb_regex_encoding( "EUC-JP" );
mb_ereg_replace('×', '○', '×アイウエオー');
とすると文字化けしません。
今回は私がEUC-JPで記述していたので、EUC-JPとしました。
他の文字コードの場合は、適宜文字コードの部分の変更してください。
★mb_ereg_replace
マルチバイトの文字列を置換する
マニュアル参照
★mb_regex_encoding
マルチバイト正規表現用のエンコーディングを文字列として返す
マニュアル参照
PHPに限らずですが、文字化けは厄介なものです。
常に文字コードが何かを気にしながら、プログラミングしないとすぐに文字化けします。
文字化けの原因もさまざまですので、参考になればと思います。
PHPでプログラムを組んでいると、よく文字化けします。
ということで早速結論です。
【症状】
文字コードはEUC-JP
音引き(伸ばし棒)の部分で文字化け
例1
mb_ereg_replace('×', '○', '×アイウエオ');
⇒文字化けしない
例2
mb_ereg_replace('×', '○', '×アイウエオー');
⇒音引き(伸ばし棒)の部分だけ文字化けする
【対応】
mb_regex_encoding( "EUC-JP" );
という文を記述しておく。
例えば【症状】例2の場合
mb_regex_encoding( "EUC-JP" );
mb_ereg_replace('×', '○', '×アイウエオー');
とすると文字化けしません。
今回は私がEUC-JPで記述していたので、EUC-JPとしました。
他の文字コードの場合は、適宜文字コードの部分の変更してください。
★mb_ereg_replace
マルチバイトの文字列を置換する
マニュアル参照
★mb_regex_encoding
マルチバイト正規表現用のエンコーディングを文字列として返す
マニュアル参照
PHPに限らずですが、文字化けは厄介なものです。
常に文字コードが何かを気にしながら、プログラミングしないとすぐに文字化けします。
文字化けの原因もさまざまですので、参考になればと思います。
【PHPの最新記事】
この記事へのコメント