Я пытаюсь заменить строку, которая не имеет любые иностранные символы в нем со строкой, которая имеет внешние ключи в нем.
Если я делаю, как я показываю в следующем коде:
$str= str_replace($original, utf8_encode($replace), $str);
или же
$str= utf8_encode(str_replace($original, $replace, $str));
я получил Fà © dà © Рацион за Fédération
Есть идеи, как заставить str_replace или preg_replace работать в этой ситуации?
Эта проблема возникает из-за того, что вы utf8_encoding строки, которая уже в формате UTF-8.
Попробуйте использовать это:
$str = mb_convert_encoding($str, 'UTF-8', mb_detect_encoding($str));
Это найдет текущий формат строки и закодирует его правильно.
PS: таким образом вы не сможете получить ошибку в строке, тогда вы сможете правильно использовать str_replace.
Других решений пока нет …