Je suis en train de faire le remplacement de caractères accentués en PHP, mais obtenir des résultats géniaux, je pense être parce que je suis en utilisant une chaîne UTF-8 et str_replace peut ne pas gérer correctement les chaînes multi-octets ..PHP Multi Byte str_replace?
$accents_search = array('á','à','â','ã','ª','ä','å','Á','À','Â','Ã','Ä','é','è',
'ê','ë','É','È','Ê','Ë','í','ì','î','ï','Í','Ì','Î','Ï','œ','ò','ó','ô','õ','º','ø',
'Ø','Ó','Ò','Ô','Õ','ú','ù','û','Ú','Ù','Û','ç','Ç','Ñ','ñ');
$accents_replace = array('a','a','a','a','a','a','a','A','A','A','A','A','e','e',
'e','e','E','E','E','E','i','i','i','i','I','I','I','I','oe','o','o','o','o','o','o',
'O','O','O','O','O','u','u','u','U','U','U','c','C','N','n');
$str = str_replace($accents_search, $accents_replace, $str);
résultats Je reçois:
Ørjan Nilsen -> �orjan Nilsen
Résultat attendu:
Ørjan Nilsen -> Orjan Nilsen
Edit: J'ai obtenu mon gestionnaire de caractère interne défini sur UTF-8 (selon mb_interna l_encoding()), aussi la valeur de $ str est UTF-8, donc d'après ce que je peux dire, toutes les chaînes impliquées sont UTF-8. Str_replace() détecte-t-il les jeux de caractères et les utilise-t-il correctement?
Vérifiez ma réponse ici: [Correction des caractères en PHP] (http://stackoverflow.com/a/9499771/318380). Cela m'a beaucoup aidé !!! – jazkat