2012-08-01 7 views
5

Quando avere un file salvato in ISO-8859-1 e utilizzando il comandoQuali charset considerando le funzioni modificate da PHP5.2 a PHP5.4

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

Il ritorno sarà solo "test:".

Questo perché il set di caratteri standard per htmlspecialchars è stato modificato in UTF-8 in PHP5.4. È necessario impostare in modo esplicito il set di caratteri:

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

Ci sono altre funzioni in PHP5.4, che non funziona più correttamente, se non si imposta il set di caratteri?

risposta

1

htmlentities sembra essere un'altra funzione che è stata modificata: http://de3.php.net/manual/de/migration54.other.php

La guida migrazione da PHP 5.2-> 5.3 non si fornisce alcuna più funzioni che hanno cambiato il set di caratteri di default: http://de3.php.net/manual/de/migration53.php

Quindi probabilmente è solo htmlspecialchars() e htmlentities

Comunque, credo che quei due deve assolutamente andare ai "Cambiamenti non compatibili" -list http://de3.php.net/manual/de/migration54.incompatible.php

+2

voglio aggiungere una cosa: PHP 5.4 era credono di essere "PHP 6.0" che è stato supponiamo di essere pieno UTF- 8, quindi in un prossimo futuro, tutte le funzioni saranno predefinite su UTF-8. –

+0

@David Bélanger: questo è molto impreciso. Non c'è mai stato PHP 6.0 e PHP 5.4 non dovrebbe mai essere PHP 6.0. Anche PHP 6.0 - se mai - è stato supposto essere UTF-16, non UTF-8. – hakre

+0

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

Problemi correlati