Я пытаюсь заменить некий символ в строке на другой. Это довольно неясные латинские символы. Я хочу заменить символ (шестнадцатеричный) 259 на 4d9, поэтому я пробовал это:Заменить символ юникода
str_replace("\x02\x59","\x04\xd9",$string);
Это не сработало. Как мне это сделать?
** EDIT: Дополнительная информация.
Спасибо, bobince, что сделал трюк. Хотя, я хочу также заменить верхний регистр schwa, и он почему-то не работает. Я вычислил 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
, но это должно сработать.