2012-08-01 76 views
5

其保存在ISO 8859的文件時,並使用命令哪個字符集考慮從PHP5.2改爲PHP5.4

echo "test: ".htmlspecialchars("äöü"); 

的回報將是唯一的功能「測試」。

這是因爲在PHP5.4中,htmlspecialchars的標準字符集更改爲UTF-8。您需要明確設置字符集:

echo "test: ".htmlspecialchars("äöü", ENT_COMPAT | ENT_HTML401, 'ISO-8859-1'); 

是否有任何PHP5.4等功能,將無法正常工作了,如果你沒有設置字符集?

回答

1

htmlentities似乎是被改變的另一個功能:http://de3.php.net/manual/de/migration54.other.php

從PHP 5.2-遷移指南> 5.3沒有給出任何更改的默認字符集多種功能:http://de3.php.net/manual/de/migration53.php

所以大概是唯一htmlspecialchars()htmlentities

無論如何,我認爲這兩個絕對應該去「向下兼容的改變」 -list http://de3.php.net/manual/de/migration54.incompatible.php

+2

我想補充一點:PHP 5.4假設是「PHP 6.0」,它被認爲是完整的UTF- 8,所以在接近未來的時候,所有的函數默認都會設置爲UTF-8。 – 2012-08-01 12:34:56

+0

@DavidBélanger:這非常不準確。從來沒有PHP 6.0和PHP 5.4從未被認爲是PHP 6.0。還有PHP 6.0 - 如果曾經 - 被栓爲UTF-16,而不是UTF-8。 – hakre 2013-04-29 09:53:47

+0

@hakre False。見http://smartwebdeveloper.com/php/php-6-features-release-date-hosting-download – 2013-04-29 13:25:59