PHP キャラセットを UTF8 から EUC-JP に変更するには?

ショコラ
ショコラ

PHP キャラセットを UTF8 から EUC-JP に変更するには?

以下の2つの対応でキメマス。
①php.ini の default_charset を eucJP-win に変更する。
②mb_ereg_replace の前に mb_regex_encoding(‘eucJP-win’) を実行する。

もっさん先輩
もっさん先輩
default_charset = EUC-JP

↑の EUC-JP と設定しがちなのですが、おそらく↓の eucJP-win を設定した方がベターです。

default_charset = eucJP-win

ここで不具合に気が付きました。mb_ereg_replace関数で機種依存文字を使って置換するとワーニングが出ました。

Warning: mb_ereg_replace(): Pattern is not valid under EUC-JP encoding in

default_charset に「eucJP-win」を設定しても、mb_regex_encoding関数での認識は「EUC-JP」みたいです。

# php -r "echo mb_regex_encoding(),PHP_EOL;";
EUC-JP

php.ini では直りませんでしたので、mb_regex_encoding関数で設定して対応しました。

mb_regex_encoding('eucJP-win');

シチュエーション

昔作った EUC-JP で書かれたコードを PHP8 に移行することになった。

Scroll to Top