Codificação de Caracteres Especiais
Bom dia galera, beleza?
Tenho uma duvida sobre codificação de dados capturados pelo PHP no MySQL!
Seguinte estou fazendo um RSS dinamico, que assim que meu cliente cria uma nova noticia no site dele, o PHP ja cria um novo arquivo RSS e salva por cima do antigo!
Abaixo o site do qual falo e o endereço do RSS
http://www.febec.org.br/rss/feed.rss
O problema, como vcs devem ver no RSS, é que os titulos das noticas vem com aqueles codigos de caracteres especiais de HTML
CURSO FORNO & FOGÃO
Quando na verdade era para aparecer
CURSO FORNO & FOGÃO
Então, fiz de tudo, pq os dados vem do mesmo banco de dados, e a unica coisa que difere um do outro, é que eles vem de campos diferentes, um de um campo VARCHAR e outro de um campo TEXT
abaixo segue meu codigo para que possam dar uma analisada!
<?php
$conteudo = "";
$conteudo .= "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?> ";
$conteudo .= "<rss version=\"2.0\"> ";
$conteudo .= "<channel> ";
$conteudo .= "<title>FEBEC</title> ";
$conteudo .= "<link>[http://www.febec.org.br](http://www.febec.org.br) ";
$conteudo .= "<description>Federação Brasileira de Entidades de Combate ao Câncer</description> ";
include("inc_conexao.php");
function mostraDescricao($descricao, $caracteres){
$posicao = strpos($descricao, " ", $caracteres);
$descricaoFinal = substr($descricao, 0, $posicao) . "...";
return $descricaoFinal;
}
$sql = mysql_query("SELECT codigo, titulo, conteudo, data FROM noticias WHERE status='sim' ORDER BY data DESC LIMIT 10");
$q_sql = mysql_num_rows($sql);
for ($i=0 ; $i<$q_sql ; $i++){
$r_sql = mysql_fetch_row($sql);
$codigo = $r_sql[0];
$titulo = utf8_decode(strip_tags(htmlspecialchars(rteSafe($r_sql[1]), ENT_COMPAT, 'UTF-8')));
$conteudoMgs = utf8_decode(strip_tags(html_entity_decode($r_sql[2], ENT_COMPAT, 'UTF-8')));
$conteudo .= "<item> ";
$conteudo .= "<title>" . $titulo . "</title> ";
$conteudo .= "<link>[http://www.febec.org.br/noticias.php?codigo=$codigo](http://www.febec.org.br/noticias.php?codigo=%24codigo) ";
$conteudo .= "<description>" . mostraDescricao($conteudoMgs, 200) . "</description> ";
$conteudo .= "</item> ";
}
$conteudo .= "</channel> ";
$conteudo .= "</rss> ";
$ponteiro = fopen("feed.rss", "w");
fwrite($ponteiro, $conteudo);
fclose($ponteiro);
?>
So estou com esse problema de codificação, alguem sabe o que pode ser?
Desde já agradeço!
Abraços
Discussão (3)
Carregando comentários...