За последние 24 часа нас посетили 20887 программистов и 1604 робота. Сейчас ищут 2214 программистов ...

Как обрабатывать rss feeds с различной кодировкой?

Тема в разделе "Прочие вопросы по PHP", создана пользователем mistake, 31 мар 2006.

  1. mistake

    mistake Активный пользователь

    С нами с:
    23 фев 2006
    Сообщения:
    23
    Симпатии:
    0
    Ситуация: Скачал класс для парсинга и вывода rss.xml. Но xml_parser выводит текст в той кодировке, в которой получил. Так что при выводе нескольких новостных лент с различной кодировкой страница не может правильно отображаться. Кодировка конечно указана в приходящем документе, но ее можно узнать только во время самого парсинга, а менять TARGET_ENCODING xml_parsera в это время наверно уже поздно.
    Так вопрос: каким образом узнавать и менять кодировки разных лент, чтобы все они выводились на одной странице в кодировке Windows-1251?
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    mistake
    при получении RSS в самом нчале прописано
    <?xml version="1.0" encoding="windows-1251" ?>

    ловишь от туда кодировку. конвертишь iconv() в то, что требуется.
     
  3. mistake

    mistake Активный пользователь

    С нами с:
    23 фев 2006
    Сообщения:
    23
    Симпатии:
    0
    это понятно
    За это СПАСИБО. Действительно работает, хотя я и не знал что существует iconv(). Полезная вещь.
     
  4. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    mistake
    я давно работаю в UTF-8. очень много проблем с кодировками отпадают сами собой. Рекомендую ...

    Главное грамотно настроить базу.
     
  5. mistake

    mistake Активный пользователь

    С нами с:
    23 фев 2006
    Сообщения:
    23
    Симпатии:
    0
    У меня вообще парадокс. На хостинге хмл-парсер вкакой кодировке берет, в такой и возвращает. А на локалке урезаный денвер берет в разных, а возвращает всегда в utf-8. В скрипте совместить это - головная боль.
    И чем utf8 лучше win1251. По каким причинам переходить лишь на неё?
     
  6. SNET.Manager

    SNET.Manager Активный пользователь

    С нами с:
    1 апр 2006
    Сообщения:
    9
    Симпатии:
    0
  7. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    1251 это подмножество utf-8.
     
  8. mistake

    mistake Активный пользователь

    С нами с:
    23 фев 2006
    Сообщения:
    23
    Симпатии:
    0
    Не совсем понятно
    Warning: file_get_contents(): Unable to access exploit.in/rss.php in /home/snetgro/public_html/projects/rss/rss-parser.php on line 27


    Warning: file_get_contents(exploit.in/rss.php): failed to open stream: No such file or directory in /home/snetgro/public_html/projects/rss/rss-parser.php on line 27
     
  9. mistake

    mistake Активный пользователь

    С нами с:
    23 фев 2006
    Сообщения:
    23
    Симпатии:
    0
    SNET.Manager прошу прощения, с абс. адресами вида http://www.cnews.ru/news.xml работает, но в чём был совет?
     
  10. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Уж лучше бы не отвечали... никаким подможестовом она не является.
    UTF-8 - это кодировка, в кторой есть коды для всех букв/символов/иероглифов. В 1251 только стандартная ASCII и кириллица. Проще говоря в случае UTF-8 мы используем одну кодировку для всех алфавитов, а в случае всяких CP-1251,1252,... отдельную кодировку для каждого алфавита.
     
  11. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    AlexGousev
    и почему же она не подмножество? если включает все, что принадлежит 1251? подмножество и есть.
     
  12. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    Я трактовал слово "подмножество" как "одно множество является частью другого".

    В CP1251 коды символов кириллицы лежат в диапазоне 128-255 (точно не помню какие где). В UTF-8 для кириллических символов используется второй байт. В общем, http://unicode.org/, если интересно.[/url]
     
  13. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    спасибо ... знаем ... 8)