file get contents кодировка

Я использую file_get_contents (), чтобы получить HTML и удалить некоторые данные с веб-сайта.
Источник не всегда UTF8, но я использую FORCEUTF8 класс, чтобы исправить это. Это не работает нормально, хотя. Что я делаю неправильно?

Есть ли альтернативный способ сделать это?

Решение

file_get_contents Известно, что уничтожить кодировку UTF8.

Попробуйте что-то вроде этого:

Если это не работает, не могли бы вы привести пример URL, где это не работает? (Я проверил источник библиотеки FORCEUTF8, и это выглядит не очень эффективно, и я предполагаю, что эта маленькая функция могла бы сделать то же самое (и она встроена в PHP-код)).

Другие решения

Вы можете использовать метод «utf8_encode». Это должно быть сделано так же, как написано выше.

Моя задача проста: сделайте почтовый запрос на translate.google.com и получите перевод. В следующем примере я использую слово «hello» для перевода на русский язык.

Линии, помеченные как необязательные, – это те, без которых вывод одинаковый. Но я получаю странные персонажи …

Кто-нибудь знает, как решить эту проблему?

  1. Забыл упомянуть, что все мои php-файлы закодированы в UTF-8 без спецификации
  2. Когда я меняю «на» язык на «en», это перевод с английского на английский, он работает нормально.
  3. Я не думаю, что библиотека, которую я использую, испортила, потому что я попытался вывести всю страницу $, не передавая ее библиотечным функциям.
  4. Я использую 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

Скорее всего подойдет больше, если текст страницы надо дальше обрабатывать.

Вроде так пишется правильно + посмотри в какой кодировке файл сохранен.

ТС — заметь,каждый раз при получении страницы она разная! возможно что она запаковывается чем-то. Даже в твоем примере, обнови пару раз, контент будет разный всегда, пусть и кракозябрами!

Тут дело не в них, а в ответе сервера на твой запрос!

Оцените статью