Je reçois des données de la base de données codée en utf8. Mais d'une manière ou d'une autre, certaines anciennes données contiennent des caractères latin1.Détecter les caractères latin1 dans la chaîne utf8
Donc, ce
$encod = mb_detect_encoding($string, 'UTF-8', true);
est toujours correcte.
Est-il sûr de toujours utiliser utf8_decode() pour vérifier les caractères latin1 comme 'äöüß' ???
$string = utf8_decode($string);
$search = Array(" ", "ä", "ö", "ü", "ß", "."); //,"/Ä/","/Ö/","/Ü/");
$replace = Array("-", "ae", "oe", "ue", "ss", "-"); //,"Ae","Oe","Ue");
$string = str_replace($search, $replace, strtolower($string));
salutations
que diriez-vous 'mb_detect_encoding ($ string, « ISO-8859-1, UTF -8 ', vrai); '? – ajreal
@ajreal la chaîne que je reçois de la base de données est '¤ä¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤'''''''' ce code (mb_detect_encoding) ($ this -> _ name,' ISO-8859-1, UTF-8 ', true); ' code' dit 'ISO-8859-1' et utf8_decode ($ chaîne) donne 'äääää', que dois-je faire? – spankmaster79
essayer de rechercher iconv, mb conversion sur php manuel/SO, devrait avoir quelques questions discuter avant ici – ajreal