PHP

PHPでinternal_encodingを設定する際に気を付けること

mb_internal_encoding()という関数は、php.iniのmbstring.internal_encodingを参照しているわけではないということを調査した備忘録。

一応サンプルスクリプトと結果を記載。

<?php
ini_set("mbstring.internal_encoding", 'EUC-JP');

echo 'default : ' . mb_internal_encoding() . ' ' . ini_get("mbstring.internal_encoding" ) . '<br />' ;
//default : EUC-JP EUC-JP

mb_internal_encoding('UTF-8');
echo 'mb_internal_encoding : ' . mb_internal_encoding() . ' ' . ini_get("mbstring.internal_encoding" ) . '<br />' ;
//mb_internal_encoding : UTF-8 EUC-JP

ini_set("mbstring.internal_encoding", 'EUC-JP');

ini_set("mbstring.internal_encoding", 'UTF-8');
echo 'mbstring.internal_encoding : ' . mb_internal_encoding() . ' ' . ini_get("mbstring.internal_encoding" ) . '<br />' ;
//mbstring.internal_encoding : UTF-8 UTF-8

ini_setで対応した方がよさげ。