Iş mantığı ile haklı nedenlerden dolayı, ben bir dizesinde karakter "Æ" ile "Ae" dönüştürmek gerekir. Ancak, () mb_detect_encoding dize UTF-8 olduğunu bana söyler rağmen, ben bunu nasıl anlamaya olamaz. (Diğer Google aramaları ettiler Ve iş mantığının diğer nedenlerle, bu değiştirmeden önce) (dize Htmlentities için bir sorun olacaktır.)
Ne ilk denedim sınama dizesi "Æther" kullanarak, bu oldu:
return str_replace("Æ", 'Ae', $string);
Ne yazık ki, aslında "Aether" dönen, metinde Æ bulmaz.
return str_replace(chr(195), 'Ae', $string);
Bu Æ bulur ve değiştirir, fakat kullanılabilen değil değişen, sonradan bilinmeyen bir karakter ekler "Aether." Yani bu çalıştı:
$ae_character = mb_convert_encoding('&#' . intval(195) . ';', 'UTF-8', 'HTML-ENTITIES');
return str_replace($ae_character, 'Ae', $string);
Yine dizesinde Æ karakteri bulmak için başarısız olduğu. Ben bu çeşit bir UTF-8 sorunu olduğunu biliyorum, ama dürüstçe aramak ve daha sonra ekstra karakteri eklemeden bu nasıl değiştirileceği olarak stumped. Herhangi bir fikir?