Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rvsrafael

[Resolvido] Caratecter especiais "á ô &..."

Recommended Posts

Bom galera estou tentando implementa um sistema de RSS...

 

O meu problema é o seguinte.. ao rodar o codigo abaixo no FIREFOX funciona sem problema meu RSS...

 

Já qndo vo faz o msm no IE da pau... justamente qndo encontra um caracter especia tipo acentuados e etc...

essas informações com caracter especial estão contidas nas variaveis $texto e $titulo

gostaria de alguma sugestão pra resolve esse problema....

 

segue o codigo da pagna....

 

<?php

$cConexao = mysql_connect("localhost", "user", "senha");
mysql_select_db("noticia",$cConexao);


// Intanciamos/chamamos a classe
$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', 'Meu site');
$canal->addChild('link', 'http://www.meu.com.br/noticias/');
$canal->addChild('description', 'Últimas notícias');


$sql = "SELECT * FROM `noticias` WHERE (`ESTADO` = 'P') ORDER BY `COD_NOTICIA` DESC";

$lim = mysql_query($sql);

while ($dados = mysql_fetch_assoc($lim))
{
$id = $dados['COD_NOTICIA'];
$titulo = $dados['IDT_TITULO'];
$texto = $dados['IDT_RESUMO'];

// Cria um elemento <item> dentro de <channel>
$item = $canal->addChild('item');
// Adiciona sub-elementos ao elemento <item>
$item->addChild('title', $titulo);
$item->addChild('link', "http://www.meu.com.br/noticia.php?c=".$id."&chv=XhZvfqgVd5");
$item->addChild('description', $texto);
}

// Cria o elemento <image> dentro de <rss>
$canal = $rss->addChild('image');
// Adiciona sub-elementos ao elemento <image>
$canal->addChild('url', 'http://www.meu.com.br/img/logo.jpg');

echo $rss->asXML();

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

poste aqui o resultado do XML.

 

se tiver muita coisa poste somente as 5 ou 10 primeiras linhas

 

se tiver dados confidenciais, troque por dados fictícios

 

 

certifique-se de esvaziar o cache do browser quando faz alterações em códigos, principalmente client-side.

Compartilhar este post


Link para o post
Compartilhar em outros sites

poste aqui o resultado do XML.

 

se tiver muita coisa poste somente as 5 ou 10 primeiras linhas

 

se tiver dados confidenciais, troque por dados fictícios

 

 

certifique-se de esvaziar o cache do browser quando faz alterações em códigos, principalmente client-side.

Observe q os caracter especiais estão em vermelho no IE ao deparar com isso ele simples mente para! onde encontra o 1°caracter especial...

 

já firefox funciona perfeitamente...

 

 

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	 <channel>
		 <title>meu_site</title>
		 <link>http://www.meu.com.br/noticias/</link>
		 <description>[color="#FF0000"]Ú[/color]ltimas notcias de adamantina e regi[color="#FF0000"]ã[/color]o.</description>
		 
		 <item>
		 <title>Aluno de Direito recebe pr[color="#FF0000"]ê[/color]mio por trabalho sobre a Constitui[color="#FF0000"]çã[/color]o Federal</title>
		 <link> http://www.meu.com.br/noticia.php?c=205&chv=XhZvfqgVd5</link>
		 <description>Marcel Pangoni Guerra, autor de Constituição de Papel, ganhou R[color="#FF0000"]$[/color] 4 mil em livros jurídicos</description>
		 </item>
		 

	</channel>
	<image>
	<url>http://www.meu.com.br/img/logo.jpg</url>
	</image>
</rss>

acima o resultado do XML

Compartilhar este post


Link para o post
Compartilhar em outros sites

IE8, não apresentou problemas referente a encoding..

 

apresentou problema referente ao ampersand (&)

 

para resolver, o problema referente ao ampersand basta convertê-lo para html entities "&"

 

http://www.w3.org/TR/xhtml1/guidelines.html#C_12

 

http://www.xml.com/pub/a/2001/01/31/qanda.html

http://articles.techrepublic.com.com/5100-...11-5032714.html

 

 

 

 

certifique-se de esvaziar o cache do browser quando faz alterações em códigos, principalmente client-side.

Compartilhar este post


Link para o post
Compartilhar em outros sites

IE8, não apresentou problemas referente a encoding..

 

apresentou problema referente ao ampersand (&)

 

para resolver, o problema referente ao ampersand basta convertê-lo para html entities "&"

 

http://www.w3.org/TR/xhtml1/guidelines.html#C_12

 

http://www.xml.com/pub/a/2001/01/31/qanda.html

http://articles.techrepublic.com.com/5100-...11-5032714.html

 

 

 

 

certifique-se de esvaziar o cache do browser quando faz alterações em códigos, principalmente client-side.

 

segue o meu erro no IE7

 

 

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

IE8, não apresentou problemas referente a encoding..

 

apresentou problema referente ao ampersand (&)

 

para resolver, o problema referente ao ampersand basta convertê-lo para html entities "&"

 

http://www.w3.org/TR/xhtml1/guidelines.html#C_12

 

http://www.xml.com/pub/a/2001/01/31/qanda.html

http://articles.techrepublic.com.com/5100-...11-5032714.html

 

 

 

 

certifique-se de esvaziar o cache do browser quando faz alterações em códigos, principalmente client-side.

 

segue o meu erro no IE7

 

 

Imagem Postada

 

a palavra q ele paro é prêmio

Compartilhar este post


Link para o post
Compartilhar em outros sites

IE6 windows xp

 

Imagem Postada

 

 

 

obs: verifique se o encoding do texto é o mesmo encoding definido para o xml (utf-8)

Compartilhar este post


Link para o post
Compartilhar em outros sites

IE6 windows xp

 

Imagem Postada

 

 

 

obs: verifique se o encoding do texto é o mesmo encoding definido para o xml (utf-8)

 

esta td ok qnto ao encoding!!!

mas mesmo assim nao funciona....

 

será q há outra forma de fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

teste em outros pcs, na maior quantidade possível e veja se ocorre o mesmo problema

 

repetindo pela terceira vez

"certifique-se de limpar o cache do browser"

 

limpe o cache, feche todas as janelas.

abra de novo e limpe de novo, feche e abra.

 

sabe como é o internet explorer...

 

 

poderia confirmar aqui se fez a limpeza do cache e se fez teste em outros pcs?

 

o problema pode ser específico do seu pc somente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

teste em outros pcs, na maior quantidade possível e veja se ocorre o mesmo problema

 

repetindo pela terceira vez

"certifique-se de limpar o cache do browser"

 

limpe o cache, feche todas as janelas.

abra de novo e limpe de novo, feche e abra.

 

sabe como é o internet explorer...

 

 

poderia confirmar aqui se fez a limpeza do cache e se fez teste em outros pcs?

 

o problema pode ser específico do seu pc somente.

Hinom

estou certo de q o cache esta limpo....

realmete testei em outras maquinas enviando o link da pagina para amigo e o erro acontece em todos os IE7(pelo menos)

 

grato pela atencao...

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. qual editor de textos está usando ?

 

experimente criar um novo arquivo php exatamente com o mesmo script, mas não copie e cole o conteúdo do arquivo original

 

pode ser algum problema no software que está usando para editar o arquivo php.

 

 

obs: essa é uma hipótese, considerando que todas as dicas anteriores não satisfizeram.

 

 

2. qual o internal encoding do php?

echo mb_internal_encoding();
http://php.net/mb_internal_encoding

 

 

 

3. Windows XP Professional 32bits, Internet Explorer 7.0.5730.13

Imagem Postada

Acusou o mesmo erro apontado pelo Internet Explorer 8 do Windows 7

 

 

 

Faça os tests consistentemente.

Provavelmente o problema está no arquivo PHP ou no output gerado pelo PHP.

 

Corrija também o uso do ampersand, conforme recomendação do W3C.

 

 

Resultado após corrigir o caracter "ampersand" ( "E" comercial):

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

1. qual editor de textos está usando ?

 

experimente criar um novo arquivo php exatamente com o mesmo script, mas não copie e cole o conteúdo do arquivo original

 

pode ser algum problema no software que está usando para editar o arquivo php.

 

 

obs: essa é uma hipótese, considerando que todas as dicas anteriores não satisfizeram.

 

 

2. qual o internal encoding do php?

echo mb_internal_encoding();
http://php.net/mb_internal_encoding

 

 

 

3. Windows XP Professional 32bits, Internet Explorer 7.0.5730.13

Imagem Postada

Acusou o mesmo erro apontado pelo Internet Explorer 8 do Windows 7

 

 

 

Faça os tests consistentemente.

Provavelmente o problema está no arquivo PHP ou no output gerado pelo PHP.

 

Corrija também o uso do ampersand, conforme recomendação do W3C.

 

 

Resultado após corrigir o caracter "ampersand" ( "E" comercial):

Imagem Postada

 

 

echo mb_internal_encoding(); --> ISO-8859-1

 

e refiz o codigo mesmo assim nd...

Compartilhar este post


Link para o post
Compartilhar em outros sites

$cConexao = mysql_connect("localhost", "user", "senha");
mysql_select_db("noticia",$cConexao);

$rss = new SimpleXMLElement('<?xml version="1.0" encoding="ISO-8859-1" ?><rss></rss>');
$rss->addAttribute('version', '2.0');
		
$canal = $rss->addChild('channel');

$canal->addChild('title', 'meu site');
$canal->addChild('link', 'http://www.meu.com.br/noticias/');
$canal->addChild('description', 'publicadas....');
		
$sql = "SELECT * FROM `noticias` WHERE (`ESTADO` = 'P') ORDER BY `COD_NOTICIA` DESC";

$lim = mysql_query($sql);
while ($dados = mysql_fetch_assoc($lim)) 
{
	$id = $dados['COD_NOTICIA'];
	$titulo = $dados['IDT_TITULO'];
	$texto = $dados['IDT_RESUMO'];

$item = $canal->addChild('item');

[color="#FF0000"]$titulo2 = mb_convert_encoding($titulo, "UTF-8", "ISO-8859-1");
$texto2 = mb_convert_encoding($texto, "UTF-8", "ISO-8859-1");[/color]

$item->addChild('title', $titulo2);
$item->addChild('link', " http://www.meu.com.br/noticia.php?c=".$id."&chv=XhZvfqgVd5");
$item->addChild('description', $texto2);
}	
			
$canal = $rss->addChild('image');

$canal->addChild('url', 'http://www.meu.com.br/img/logo.jpg');


echo $rss->asXML();

	
?>

Galera esta ae o codigo funcionando no IE7 http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

obrigado Hinom pela grande atencao e as dicas....

 

caso tenha algo a sugerir estou aberto a sugestões...

valeu...

Compartilhar este post


Link para o post
Compartilhar em outros sites

echo mb_internal_encoding(); --> ISO-8859-1

o php estava retornando encoding latin ISO, por isso conflitava com a definição do output utf-8

 

bom que resolveu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.