Dit HTML-output skal være i en enkelt kodning, det er der ingen vej udenom. Det betyder, at indhold i forskellige kodninger først skal konverteres til din HTML-kodning. Selvom det er muligt at gøre med iconv
eller mb_convert_encoding
, der er to problemer, du skal løse:
- Du skal kende (eller gætte) den aktuelle kodning af indholdet
- Du skal gøre dette manuelt, overalt
For eksempel ville en teoretisk løsning være at vælge UTF-8 som din HTML-kodning og derefter gøre dette for alle strenge, du vil udlæse:
$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;
Ovenstående kode forudsætter, at ikke-UTF-8 indhold er kodet i latin-1, hvilket er rimeligt i henhold til dit spørgsmål.