Ir para conteúdo
Fórum Script Brasil
  • 0

Feed RSS com problemas na acentuação


Viniw

Pergunta

Boa noite,

Eu estou desenvolvendo um Feed RSS, segui alguns passos a passos que achei aleatoriamente na internet, porém em todos ocorreu o mesmo erro:

- O texto perde a acentuação.

O codigo que eu estou usando agora é o seguinte:

<?PHP
    include 'Funcoes/Funcoes.php';
    include 'Funcoes/Variaveis.php';

    //Intanciamos/chamamos a classe RSS
    $rss = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"UTF-8\"?><rss></rss>");
    $rss->addAttribute('version', '2.0');

    // Cria o elemento <channel> dentro de <rss>
    $canal = $rss->addChild('channel');
    
    // Adiciona sub-elementos ao elemento <channel>
    $canal->addChild('title', $GLOBALS['sTitulo']);
    $canal->addChild('link', sLink());
    $canal->addChild('description', 'RSS do Blog '.$GLOBALS['sTitulo']);
    $canal->addChild('language', 'pt-br');
    

    $qry = ExecutaSQL("SELECT `PLinkRef` , `PDataHora` , `PTitulo` , `PTexto`
                       FROM `postagem`
                       WHERE `PPostado` = 'S'
                       ORDER BY `PDataHora` DESC
                       LIMIT 0 , 45");
    while ($row = mysql_fetch_array($qry)){
        // Cria outro elemento <item> dentro de <channel>
        $item = $canal->addChild('item');
        // Adiciona sub-elementos ao elemento <item>
        $item->addChild('title', $row['PTitulo']);
        $item->addChild('link', sLink('postagem/'.$row['PLinkRef'].'.html'));
        $item->addChild('description', $row['PTexto']);
        $item->addChild('pubDate', date('r', $row['PDataHora']));
    }
    echo $rss->asXML();
?>
OBS: sLink(), e ExecutaSQL() são funções do include 'Funcoes/Funcoes.php'. Esse codigo gera o seguinte feed: http://relativoounao.com/f.php onde não aparece as atualizações, e se vermos o codigo fonte veremos as letras acentuadas trocadas pelo caracter �. O engraçado é que se eu troco a linha
$rss = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"UTF-8\"?><rss></rss>");
por
$rss = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"UTF-8\"?><teste></teste>");

vai carregar um xml normal e acentuado

Link Removido

Isso me deixou mais confuso :wacko:

Alguém sabe me informar como corrigir esse problema? ou em que direção devo seguir para corrigi-lo?

Editado por Viniw
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Boa noite,

Resolvi o problema convertendo o texto para UTF8 com a função "UTF8_Encode"

então em vez de

echo $rss->asXML();
ficou
echo UTF8_Encode($rss->asXML());

E para o feed ficar 100% eu tive que passar os textos com a função "htmlspecialchars"

Editado por Viniw
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...