Als elke ä/å/ö in de uitvoer wordt weergegeven door twee bytes, dan is het ook mogelijk dat u de tekens dubbel codeert. (Aangezien de vraag al laat zien dat je $dbh->{'mysql_enable_utf8'} = 1;
doet , Ik vermoed dat dit het meest waarschijnlijke geval is.) Een andere mogelijkheid, aangezien u dit op een webpagina weergeeft, is dat de pagina mogelijk niet specificeert dat de tekenset UTF-8 is in zijn <head>
en de browser zou verkeerd kunnen raden naar de tekencodering die het gebruikt.
Kijk goed naar uw webapp-framework, sjabloonsysteem, enz. om ervoor te zorgen dat de waarden slechts één keer worden gecodeerd tussen het moment dat ze worden opgehaald uit de database en het moment waarop ze de browser van de gebruiker bereiken. Veel frameworks/sjabloon-engines (zoals de combinatie van Dancer en TT die ik normaal gebruik) zullen de uitvoercodering automatisch afhandelen als je ze correct configureert, wat betekent dat de gegevens dubbel gecodeerd worden als ze expliciet worden gecodeerd voordat ze worden uitgevoerd.