Я пытаюсь прочитать содержимое веб-страницы
$html = file_get_html('http://www.example.com/somepage.aspx');
Поскольку кодировка страницы - это Windows-1254, и я работаю на странице, закодированной как UTF-8, я не могу заменить некоторые слова, которые имеют характерные для языка символы.
Например:
Если я попытаюсь
$str2 = str_replace('TÜRKÇE', 'TURKCE', $str);
он не заменяет.
Я пробовал htmlentities()
, она работала, но удаляла несколько слов, содержащих специальные символы.
После получения строк я использовал iconv('Windows-1254', 'utf-8', $str)
(благодаря @pguardiario). Это решило мою проблему.
Работайте только в utf-8. Если у вас есть данные в других кодировках, конвертируйте их. Если вы не знаете кодировку, попробуйте ее определить. Если вы не можете, используйте пользователей. Затем используйте функции mb_ * только для всех операций с строками, это важно! некоторые функции отсутствуют в родном php, но ищут свои реализации make-make на php.net/.. в комментариях.