( NevemTeve | 2017. 09. 21., cs – 11:54 )

Akkor jó, megnyugtattál.

Kivéve, ha mondjuk jön egy üzenet az Oracle szervertől, ami a derék PHP szeretne beleszúrkálni a standard outputba. Ekkor a következő problémák adódnak.

1. fax se tudja, milyen kódolásban jön az üzenet az Ora-tól. Ha elég pancser az üzemeltetés, valami magyarra félrefordított szöveg jön NLS_LANG-függő encodingban (pl EE8ISO8859P2, AL32UTF8, etc)

2. fax se tudja, milyen kódolásban kellene kimenjen az üzenet az outputba.

3. az üzenetben bőven lehet < > & ' "

4. vagy akár olyasmi, ami a küldő szerint normál karakter, a fogadó szerint viszont értelmetlen (vagy káros) bináris szekvencia

5. a PHP nem ismer olyat, hogy 'ISO-8859-2': ismeretlen vad exotikum, százmillió embert ha érint...

Namostan az első kérdésen úgy emelkedik felül a PHP, hogy a default_charset-et alapértelmezi, ez eléggé megkérdőjelezhető, szvsz; a 2-4 pontokon úgy, hogy a htmlentities-t hívja, ami ugyebár az 5. pont miatt problémás

Az én javaslatom az, hogy ha csak ASCII-kompatibilis kódolásokkal akarunk dologzni, akkor csak a htmlspecialchars-t használjuk (annak is csak a konvertáló funkcionalitását, az UTF8-ellenőrzés nélkül); ha viszont nem ASCII-kompatibilis kódolásokra is fel akarunk készülni, akkor a legjobb, ha simán kiírjuk, hogy 'SOMETHING IS WRONG WITH SOMETHING, GO AWAY'