Uw HTML-uitvoer moet in een enkele codering zijn, daar is geen manier omheen. Dit betekent dat inhoud in verschillende coderingen eerst moet worden geconverteerd naar uw HTML-codering. Hoewel dat mogelijk is met iconv
of mb_convert_encoding
, zijn er twee problemen die u moet oplossen:
- Je moet de huidige codering van de inhoud weten (of raden)
- Je moet dit overal handmatig doen
Een theoretische oplossing zou bijvoorbeeld zijn om UTF-8 te kiezen als uw HTML-codering en dit vervolgens te doen voor alle strings die u gaat uitvoeren:
$string = '...'; // from the database
// If it's not already UTF-8, convert to it
if (mb_detect_encoding($string, 'utf-8', true) === false) {
$string = mb_convert_encoding($string, 'utf-8', 'iso-8859-1');
}
echo $string;
De bovenstaande code gaat ervan uit dat niet-UTF-8-inhoud is gecodeerd in latin-1, wat redelijk is volgens uw vraag.