2011-11-22 256 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

相關問題