Я пытаюсь заменить один символ в строке другим. Это довольно малоизвестные латинские буквы. Я хочу заменить символ (hex) 259 на 4d9, поэтому я попробовал это:
str_replace("\x02\x59","\x04\xd9",$string);
Это не сработало. Как мне это сделать?
** EDIT: дополнительная информация.
Спасибо, Бобинс, что добился цели. Хотя, я хочу заменить прописную букву также, и она почему-то не работает. Я вычислил U + 018F (Ə) как UTF-8 0xC68F, и его следует заменить на U + 04D8 (0xD398):
$string = str_replace("\xC9\x99", "\xD3\x99", $_POST['string_with_schwa']); //lc 259->4d9
$string = str_replace( "\xC6\8F", "\xD3\x98" , $string); //uc 18f->4d8
Я копирую 'Ə' в текстовое поле и публикую его. Первый str_replace
прекрасно работает в нижнем регистре, но не обнаруживает верхний регистр во втором str_replace
, странно. Остается как U + 018F. Полагаю, я могу запустить строку через strtolower
, но это должно сработать.