Mysql
 sql >> Datenbank >  >> RDS >> Mysql

UTF8-Kodierungsproblem - Mit guten Beispielen

Dies kann ein Job für mb_detect_encoding() sein Funktion.

Nach meiner begrenzten Erfahrung damit ist es nicht 100% zuverlässig, wenn es als generischer "Codierungs-Sniffer" verwendet wird - es prüft auf das Vorhandensein bestimmter Zeichen und Bytewerte, um eine fundierte Vermutung anzustellen - aber in diesem engen Fall (muss es nur zwischen UTF-8 und ISO-8859-1 unterscheiden ) es sollte Arbeit.

<?php
$text = $entity['Entity']['title'];

echo 'Original : ', $text."<br />";
$enc = mb_detect_encoding($text, "UTF-8,ISO-8859-1");

echo 'Detected encoding '.$enc."<br />";

echo 'Fixed result: '.iconv($enc, "UTF-8", $text)."<br />";

?>

Sie erhalten möglicherweise falsche Ergebnisse für Zeichenfolgen, die keine Sonderzeichen enthalten, aber das ist kein Problem.