Сначала вы должны определить кодировку символов исходного сайта.
Выберите страницу и загрузите ее ... с помощью терминала введите:
$ curl -D headers.txt -o page.html http:/www.example.com/index.html
Заголовки ответов сохраняются в headers.txt
, а источник страницы html сохраняется в page.html
. Проверьте два файла с помощью текстового редактора и найдите Content-Type
. Вы должны найти указание кодировки символов. по крайней мере, в одном из них.
Если вы не добились успеха, вы можете использовать file
, чтобы попытаться «угадать» кодировку символов, проверив содержимое файла:
$ file -I page.html
вывод выглядит следующим образом:
page.html: text/plain; charset=iso-8859-1
Второй Вы должны решить или понять, что такое набор символов destination :
Вы храните веб-страницу в текстовом файле? Какова ожидаемая кодировка символов файла?
Вы анализируете веб-страницу в пределах PHP, чтобы получить некоторые данные, которые вас интересуют?
Вы обслуживаете веб-страницу (полностью или частично) на своем веб-сайте? Какая кодировка символов на сайте?
Предположим (например), что вы хотите получить символы Unicode, закодированные как UTF-8 .
Наконец улучшите ваш скрипт PHP, чтобы сделать правильное преобразование кодировки после получения страницы с помощью $page = curl_exec($curl);
Вы можете использовать mb-convert_encoding
$page = mb_convert_encoding( $page, 'ISO-8859-1', 'UTF-8' );
// from ----------^ ^--------to
В качестве альтернативы iconv
могут использоваться для той же цели.