Din HTML-utdata måste vara i en enda kodning, det finns ingen väg runt det. Detta innebär att innehåll i olika kodningar måste konverteras till din HTML-kodning först. Även om det är möjligt att göra med iconv
eller mb_convert_encoding
, det finns två problem du måste lösa:
- Du måste känna till (eller gissa) innehållets aktuella kodning
- Du måste göra detta manuellt, överallt
Till exempel skulle en teoretisk lösning vara att välja UTF-8 som din HTML-kodning och sedan göra detta för alla strängar du ska mata ut:
$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;
Koden ovan förutsätter att innehåll som inte är UTF-8 är kodat på latin-1, vilket är rimligt enligt din fråga.