我的每个页面的框架如下:
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' );
?
答案 0 :(得分:8)
不,你没必要。
header('Content-Type: text/html; charset=UTF-8');
为每个页面设置
答案 1 :(得分:5)
当谈到http-header时,你可以解释其他答案。
但是:有些函数是默认的charset意识
来自FILTER_SANITIZE_FULL_SPECIAL_CHARS的描述:
与htmlspecialchars一样,此过滤器知道default_charset以及序列的 检测到的字节构成当前的无效字符 字符集然后整个字符串被拒绝导致a 0长度的字符串。
答案 2 :(得分:5)
请参阅https://bugs.php.net/bug.php?id=29983看起来像一些发行版仍有问题
测试用例
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>";
}
答案 3 :(得分:3)
default_charset ini设置应该适合你。 PHP始终使用此设置
在Content-type:标头中默认输出字符编码