2012-08-01 10 views
5

Kiedy posiadające plik zapisany w ISO-8859-1 i za pomocą komendyKtóre charset rozważa funkcje zmieniły od PHP5.2 do PHP5.4

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

Zwrot będzie tylko „test”.

Jest tak, ponieważ standardowy zestaw znaków dla htmlspecialchars został zmieniony na UTF-8 w PHP5.4. Trzeba jawnie ustawić charset:

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

są jakieś inne funkcje w PHP5.4, że nie będą już działać prawidłowo, jeśli nie ustawić charset?

Odpowiedz

1

htmlentities wydaje się być inną funkcję, która została zmieniona: http://de3.php.net/manual/de/migration54.other.php

Przewodnik Migracja z PHP 5.2-> 5.3 nie daje żadnych dodatkowych funkcji, które zmieniły domyślnego kodowania: http://de3.php.net/manual/de/migration53.php

więc prawdopodobnie jest to tylko htmlspecialchars() i htmlentities

Zresztą, myślę, że te dwa zdecydowanie powinni udać się do „zacofanych Zmiany niekompatybilnych” -list http://de3.php.net/manual/de/migration54.incompatible.php

+2

chcę coś dodać: PHP 5.4 było przypuszczać, aby być „PHP 6.0”, który miał się pełna UTF- 8, więc w bliskiej przyszłości wszystkie funkcje będą domyślnie ustawione na UTF-8. –

+0

@ David Bélanger: To jest bardzo nieprecyzyjne. Nigdy nie było PHP 6.0, a PHP 5.4 nigdy nie miało być PHP 6.0. Również PHP 6.0 - jeśli w ogóle - zostało obsłużone jako UTF-16, a nie UTF-8. – hakre

+0

@hakre False. Zobacz http://smartwebdeveloper.com/php/php-6-features-release-date-hosting-download –

Powiązane problemy