sql >> Databasteknik >  >> RDS >> Mysql

UTF8-kodningsproblem - med bra exempel

Detta kan vara ett jobb för mb_detect_encoding() funktion.

Enligt min begränsade erfarenhet av det är det inte 100 % tillförlitligt när det används som en generisk "kodningssniffare" - den kontrollerar förekomsten av vissa tecken och bytevärden för att göra en välgrundad gissning - men i det här smala fallet (det måste bara skilja mellan UTF-8 och ISO-8859-1 ) det bör arbete.

<?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 />";

?>

du kan få felaktiga resultat för strängar som inte innehåller specialtecken, men det är inget problem.



  1. Är det bra att använda htmlspecialchars() innan du infogar i MySQL?

  2. Hur man lägger till AM/PM till ett tid- eller datumtidsvärde i MariaDB

  3. Spara SQLite-frågeresultat till en textfil

  4. Hur man skapar en meny i SQLPlus eller PL/SQL