2011-11-22 224 views

回答

10

不,你不需要。

header('Content-Type: text/html; charset=UTF-8'); 

设置此为每个页面已经

+0

这并不能掩盖一切。正如@itpastorn和kzqai指出的那样,有些函数具有htmlentities(和其他),它们会查看default_charset。 –

3

DEFAULT_CHARSET INI设置应该为你工作。 PHP始终使用此设置在内容类型:标头中默认输出字符编码

5

当涉及到http头时,其他答案可以解释。

但是:有一些功能是默认字符集意识到

FILTER_SANITIZE_FULL_SPECIAL_CHARS说明:

像用htmlspecialchars,该过滤器是意识到DEFAULT_CHARSET的,如果检测的 字节序列在当前的 字符集中构成无效字符,则整个字符串将被拒绝,从而导致产生0长度的字符串 。

+1

与http://php.net/htmlentities相同,当然http://php.net/htmlspecialchars – Kzqai

4

请参阅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

这是......非常令人担忧。我用php 5.5运行ubuntu 14.04,但这仍然发生... – Kzqai

相关问题