Ich versuche Umlaut Ersatz in PHP zu tun, aber flippige Ergebnisse zu erhalten, ist meine Vermutung, weil ich bin ein UTF-8-String und str_replace verwenden, können Multi-Byte-Strings nicht richtig handhaben ..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);
Ergebnisse erhalte ich:
Ørjan Nilsen -> �orjan Nilsen
Erwartetes Ergebnis:
Ørjan Nilsen -> Orjan Nilsen
Edit: ich habe meine interne Zeichen Handler auf UTF-8 erhielt (nach mb_interna l_encoding()), auch der Wert von $ str ist UTF-8, von dem was ich sagen kann, sind alle beteiligten Strings UTF-8. Erkennt str_replace() Zeichensätze und verwendet sie richtig?
Überprüfen Sie meine Antwort hier: [Fix Zeichen in PHP] (http://stackoverflow.com/a/9499771/318380). Das hat mir sehr geholfen !!! – jazkat