各ページのフレームワークは次のことを行います。
_ini_set('mbstring.internal_encoding','UTF-8');
ini_set('mbstring.func_overload',7);
header('Content-Type: text/html; charset=UTF-8');
_
私もini_set( 'default_charset', 'UTF-8' );
を行う必要がありますか?
いいえ、必要はありません。
header('Content-Type: text/html; charset=UTF-8');
これをすべてのページにすでに設定します
他の回答で説明されているように、http-headerに関しては問題ありません。
しかし:デフォルトの文字セットを認識するいくつかの関数があります
FILTER_SANITIZE_FULL_SPECIAL_CHARS の説明から:
Htmlspecialcharsと同様に、このフィルターはdefault_charsetを認識し、現在の文字セットで無効な文字を構成する一連のバイトが検出されると、文字列全体が拒否され、長さが0の文字列になります。
参照してください https://bugs.php.net/bug.php?id=2998 一部のディストリビューションにまだ問題があるように見えます
テストケース
echo "ini_get('default_charset') ". ini_get('default_charset')."<br>";
if (!ini_set('default_charset', 'utf-8')) {
echo "could not set default_charset to utf-8<br>";
}
default_charset ini設定が機能するはずです。 PHPは、常にこの設定を使用してContent-type:ヘッダーにデフォルトで文字エンコーディングを出力します