Я очищаю некоторые сайты, в которых иногда есть символы UTF-8 в названии, но которые не указывают UTF-8 в качестве набора символов (пример qq.com).Когда я использую функцию просмотра веб-сайта в своем браузере, данные, которые я хочу скопировать (т. Е. Заголовок), выглядят корректно (на японском или китайском .. не слишком уверены).Я могу скопировать заголовок и вставить его в терминал, и он выглядит точно так же.Я даже могу записать его в БД, и когда я получаю из БД, он все равно выглядит и корректно.
Однако, когда я использую cURL, данные, которые выводятся на печать, неверны.Я могу запустить cURL из командной строки или использовать PHP .. когда он выводится на терминал, он явно некорректен и остается таким же, когда я сохраняю его в БД (помните: терминал может отображать эти символыдолжным образом).Я перепробовал все подходящие комбинации из следующих:
- Настройка
CURLOPT_BINARYTRANSFER
на true
mb_convert_encoding($html, 'UTF-8')
utf8_encode($html)
utf8_decode($html)
Ни один из этих символов не отображает должным образом.Это очень расстраивает, так как я могу легко найти нужных персонажей, просто посетив сайт, но cURL не может.Я прочитал много предложений, таких как этот: Как получить заголовок веб-страницы с помощью CURL в PHP с веб-сайтов с различными CHARSET?
Решение в общем кажетсябыть "конвертировать данные в UTF-8."Если честно, я на самом деле не знаю, что это значит.Разве вышеперечисленные функции не конвертируют данные в UTF-8?Почему это уже не UTF-8?Что это такое и почему оно отображается правильно в некоторых обстоятельствах, но не для cURL?