Я использую CURL для получения контента с другого сайта, но я не знаю, почему он автоматически конвертируется из UTF-8 в ISO 8859-1, например:
сайт: abc.com:
Cửa Hàng Chip Chip: Rộn ràng đón Giáng sinh với những vật phẩm trang trí Noel đầy màu sắc của CHIPCHIP GIFT SHOP
Но когда я использую CURL, получаю контент с этого сайта, я получил следующее:
Cửa Hàng Chip Chip: Rộn ràng đón Giáng sinh với những vật phẩm trang trí Noel đầy màu sắc của CHIPCHIP GIFT SHOP
Итак, как конвертировать его в UTF-8?
Я бы рекомендовал использовать iconv
.
iconv --list
дает вам список всех известных кодировок, и вы можете использовать iconv -f FROM_ENCODING -t TO_ENCODING
сделать свое преобразование. Он также может считывать с stdin и, следовательно, подключаться к curl
.
Но в отношении комментария, который вы получили по вашему вопросу: похоже, автор файла не заботился об использовании правильной кодировки и решил придерживаться (old-style?) ä
и т. Д.
Возьмите строку в переменной и используйте следующую функцию.
$var = ""; echo utf8_encode($var);
Судя по линии, которую вы вставили, проблема, похоже, связана с объектами HTML, а не с символом. Кодированные символы выглядят хорошо для меня.
Вам нужно перевести эти объекты HTML в кодированные символы. Какой инструмент использовать, зависит от вашего окружения или языка программирования. Я не думаю, что это можно сделать только с CURL.
PHP имеет htmlspecialchars_decode () . Python unescape () из модуля HTMLParser.
curl ничего не конвертирует, загружает вещи "как есть"
То, что вы видите, это объекты символов, действительный html и браузер, что преобразование в читаемую форму.
Вы можете проверить это, открыв файл, сохраненный curl в браузере. Он будет выглядеть как живая страница.