Ennek nem sok köze van a karakterkódoláshoz, hanem inkább programozói hiba, azaz nem is hiba hanem nemtörődömség, de szerintem inkább egyszerűen bunkóság
A hiba onnan adódik álatlában, hogy valamiféle XSS védelmet akarnak megvalósítani, vagy csak óvják a usert és ere rossz függvényt használnak htmlspecialchars helyett htmlentities-t a megoldás annyi lenne elméletben hogy ki kell keresni hol alakítja át a db ből kapott adatot vagy a usertől kapottat GET/POST/COOKE stb és kicserélni a függvényt.
Demo -Save as UTF-8 No Boom
PHP kód:
<?php
header ('Content-type: text/html; charset=utf-8');
$szoveg = 'áéóú"íüóűő';
echo "$szöveg\n";
//htmlentities
echo htmlentities($szoveg) . "\n";
//htmlentities UTF8
echo htmlentities($szoveg, ENT_QUOTES, "UTF-8") ."\n";
//htmlspecialchars
echo htmlspecialchars($szoveg)."\n";
//htmlspecialchars UTF8
echo htmlspecialchars($szoveg, ENT_QUOTES, "UTF-8")."\n";
?>
Output:
Kód:
Ã¡Ã©ÃłÃº"Ã*ÃźÃłÅ±Å
áéóú"íüóűő
áéóú"íüóűő
áéóú"íüóűő
Könyvjelzők