Я использую file_get_contents (), чтобы получить HTML и удалить некоторые данные с веб-сайта.
Источник не всегда UTF8, но я использую FORCEUTF8 класс, чтобы исправить это. Это не работает нормально, хотя. Что я делаю неправильно?
Есть ли альтернативный способ сделать это?
Решение
file_get_contents Известно, что уничтожить кодировку UTF8.
Попробуйте что-то вроде этого:
Если это не работает, не могли бы вы привести пример URL, где это не работает? (Я проверил источник библиотеки FORCEUTF8, и это выглядит не очень эффективно, и я предполагаю, что эта маленькая функция могла бы сделать то же самое (и она встроена в PHP-код)).
Другие решения
Вы можете использовать метод «utf8_encode». Это должно быть сделано так же, как написано выше.
Моя задача проста: сделайте почтовый запрос на translate.google.com и получите перевод. В следующем примере я использую слово «hello» для перевода на русский язык.
Линии, помеченные как необязательные, – это те, без которых вывод одинаковый. Но я получаю странные персонажи …
Кто-нибудь знает, как решить эту проблему?
- Забыл упомянуть, что все мои php-файлы закодированы в UTF-8 без спецификации
- Когда я меняю «на» язык на «en», это перевод с английского на английский, он работает нормально.
- Я не думаю, что библиотека, которую я использую, испортила, потому что я попытался вывести всю страницу $, не передавая ее библиотечным функциям.
- Я использую PHP 5
Во-первых, ваш браузер установлен в UTF-8? В Firefox вы можете установить текстовую кодировку в режиме просмотра -> Кодировка символов. Убедитесь, что вы выбрали «Unicode (UTF-8)». Я бы также установил View-> Character Encoding-> Auto-Detect на «Universal».
Во-вторых, вы можете попробовать передать флаг FILE_TEXT, например:
Попытайтесь увидеть этот пост, если он может помочь проблеме кодирования символов импорта CURL
Также вы можете попробовать этот фрагмент (взятый из php.net)
Accept-Charset на самом деле не является обязательным. Здесь вы должны указать UTF8. Российские символы недействительны в ISO_8859-1
Да уж, вопрос на первый взгляд может показаться нубским, но разрешить его я не могу вот уже на протяжении 2 дней. Код:
У меня везде стоит UTF-8, сервер также выдает контент в этой кодировке, но что-то у нас с ним не складывается: на выходе получаются кракозябры..
Скажите пожалуйста, в чем тут может быть дело?

2 ответа 2
Это не «кракозябры», это zip-архив. Добавьте вместо своего
Вот эти строчки:
И кончатся Ваши двухдневные мучения. )
UPDATE
Скорее всего подойдет больше, если текст страницы надо дальше обрабатывать.
Вроде так пишется правильно + посмотри в какой кодировке файл сохранен.
ТС — заметь,каждый раз при получении страницы она разная! возможно что она запаковывается чем-то. Даже в твоем примере, обнови пару раз, контент будет разный всегда, пусть и кракозябрами!
Тут дело не в них, а в ответе сервера на твой запрос!