<?php
$x = 'Æmystr';
print str_replace('Æ', 'AE', $x); // prints: AEmystr
?>
Этот код работает отлично, я думаю, что вам не хватает, это изменить кодировку вашего файла. Ваш файл .php должен быть закодирован в формате UTF-8 или UNICODE. Это можно сделать в некоторых (текстовых) редакторах или IDE, т. Е. Eclipse, EditPlus, Notepad ++ и т. Д. Даже в Notepad на Windows 7.
При сохранении откройте диалоговое окно «Сохранить / Сохранить как», и обычно рядом с кнопкой «Сохранить» имеется выпадающий список / переключатели «Кодировка», которые позволяют выбирать между ANSI и UTF-8 (и другими).
На * nix Я полагаю, что большинство редакторов имеют его, но не уверены в местах. Если после того, как вы это сделаете и заработаете, то отредактируйте / сохраните с помощью редактора, который просто выполняет ANSI, он перезапишет его с неизвестным символом и т. Д ...
Почему не работает приведенный ниже код.
return str_replace(chr(195), 'Ae', $string);
Это потому, что символ юникода обычно состоит из двух символов вместе взятых. Итак, что у вас есть выше, это только начало символа Юникод. попробуйте это:
print str_replace(chr(195).chr(134), 'AE', $x);
Это также должно заменить его и может даже оказаться предпочтительным, поскольку вам (возможно | не нужно) изменять кодировку файла.