sql >> Databáze >  >> RDS >> Mysql

Problém s kódováním UTF8 – s dobrými příklady

Toto může být úloha pro mb_detect_encoding() funkce.

Podle mých omezených zkušeností s ním není 100% spolehlivý, když se používá jako obecný „kódovací sniffer“ – kontroluje přítomnost určitých znaků a hodnot bajtů, aby mohl kvalifikovaně odhadnout – ale v tomto úzkém případě (bude muset rozlišovat pouze mezi UTF-8 a ISO-8859-1 ) to mělo by práce.

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

?>

můžete získat nesprávné výsledky pro řetězce, které neobsahují speciální znaky, ale to není problém.



  1. MySQL GROUP Podle počtu

  2. Jak změnit uživatelské heslo v PostgreSQL

  3. Proč jsou funkce mysql_ PHP zastaralé?

  4. PL/SQL vytiskne referenční kurzor vrácený uloženou procedurou