We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 22662
    • 21 Posts
    Есть сайт с кодировкой UTF-8 и есть ленты новостей других сайтов которые не отображаются при попытке их вызова.

    Использую такой вызов:
    [[NewsParserX? &url=`http://www.trud.org/zagolovki.trud.org.xml`]]

    В этой новостной ленте указана кодировка cp=1251:
    <?xml version="1.0" encoding="windows-1251" ?>

    Вызов не удается. Вместо новостей получаю:
    An XML error occurred on line 4: not well-formed (invalid token)

    Новостные ленты в формате RDF рекрасно себя чувствуют на сайте и даже обновляются.
    Кто-нибудь знает можно ли при получении ленты перекодировать ее в UTF-8, дабы она нормально отображалась? Или может быть есть какие-то более элегантные решения?
      • 26744
      • 157 Posts
      $text=iconv("windows-1251","utf-8",$text);
      Это не помогает?
        • 22662
        • 21 Posts
        Куда надо вставить эту строчку? она не похожа на вызов в стиле
        [[NewsPaserX? ....]]
          • 26744
          • 157 Posts
          Вставить в сам сниппет NewsParserX
          где-нить в конце:
          ......
          $output .= $px->Get_Results();
          $output=iconv("windows-1251","utf-8",$output);

          return $output;
            • 22662
            • 21 Posts
            Нет не помогло sad
            В итоге сбилась кодировка в лентах с кодировкой utf-8, cp-1251 как не отображались так и не отображаются huh
              • 22662
              • 21 Posts
              Проблема все еще актуальна huh huh rolleyes
                • 897
                • 1,620 Posts
                Quote from: sergil at Apr 16, 2010, 12:48 AM

                Вставить в сам сниппет NewsParserX
                где-нить в конце:
                ......
                $output .= $px->Get_Results();
                $output=iconv("windows-1251","utf-8",$output);

                return $output;
                вредные советы даете, товарищ. во-первых, проблема в том, что входящие данные в кодировке отличной от utf8 вот их и надо перекодировать. во-вторых, вы кодируете все без разбору, что и привело к поломке даже легальных исходяших результатов.

                а надо бы добавить такой код в сниппет:
                $encode = mb_detect_encoding($px->content);
                if($encode && $encode !='UTF-8')
                $px->content = iconv($encode, 'UTF-8', $px->content);
                


                перед строчкой:
                $output .= $px->Get_Results();
                
                  "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

                  Не используйте Revo для "просто сайтов". Используйте Evo

                  Who can defeat the Russian bear?
                  • 22662
                  • 21 Posts
                  К сожалению и это не помогает huh
                    • 22662
                    • 21 Posts
                    ИСпользую для этого файла шаблон
                    (blank)

                    может перед вызовом сниппета стоит сделать какую-нибудь декларацию?
                      • 897
                      • 1,620 Posts
                      дайте ссылку на rss этот заковыристый
                        "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

                        Не используйте Revo для "просто сайтов". Используйте Evo

                        Who can defeat the Russian bear?