Acentuação XML - PHP

1,106 views
Skip to first unread message

bob...@gmail.com

unread,
Jan 8, 2009, 3:05:50 PM1/8/09
to GOPHP
Estou com um problema de acentuação, quando eu mostro um XML.
Eu utilizo o encoding iso-8859-1 mas mesmo assim não funciona.
Alguem poderia me ajudar?
ja utilizei utf_decode(), utf_encode().
mas não adianta, veja o exemplo abaixo.


<?php
$xml = simplexml_load_string("<?xml version='1.0'
encoding='iso-8859-1' ?>
<document>
<title>árvore?</title>
<from>joão</from>
<to>jéssica</to>
<body>
teste
</body>
</document>");

echo($xml->title);
?>

Leandro Guimarães Fernandes

unread,
Jan 8, 2009, 4:29:49 PM1/8/09
to go...@googlegroups.com
Você deve enviar um header para o navegador:

<?php header("Content-Type: text/xml; charset=ISO-8859-1",true) ?>




--
Leandro Guimarães Fernandes
Next - Redes e Tecnologia
Departamento de Desenvolvimento Web
64 9671-9043 / 64 3621-0990

Eduardo Lagares

unread,
Jan 8, 2009, 5:13:42 PM1/8/09
to GOPHP
A resposta do leandro acho que vai resolver seu problema, eu ja tive
uns aqui e demorei pra entender que propriedades de uma tag não podem
ter acentuação, se um dia tiver esse problema lembre disso.

Ex: <noticia atributo="seção" > -- ERRO
<noticia atributo="secao"> - CORRETO

On 8 jan, 19:29, "Leandro Guimarães Fernandes" <leandr...@gmail.com>
wrote:
> Você deve enviar um header para o navegador:
> <?php header("Content-Type: text/xml; charset=ISO-8859-1",true) ?>
>
> 2009/1/8 bob2...@gmail.com <bob2...@gmail.com>
Message has been deleted

bob...@gmail.com

unread,
Jan 8, 2009, 7:20:33 PM1/8/09
to GOPHP
eu tentei usuar o header que você me passou só que eu não vou usar
text/xml e sim text/html.
porem não funcinou.
eu pego uma string de xml converto em um objeto e manipulo ele em uma
pagina html
mas vlw =].
alguem tem outra dica?

Eduardo Lagares

unread,
Jan 8, 2009, 7:29:13 PM1/8/09
to go...@googlegroups.com
ue, vai usar text/html em um xml ? entao define seu header como:

header("Content-Type: text/html;  charset=ISO-8859-1",true);

acho que isso deve funcionar.




--
Eduardo Lagares
(62) 9223-1484
eduardo...@gmail.com

André Ribeiro de Miranda

unread,
Jan 8, 2009, 7:51:29 PM1/8/09
to go...@googlegroups.com
Confere qual a codificação que o arquivo foi salvo.
Para os acentos funcionar o arquivo tem que ter sido salvo com ISO-8859-1.

Se estiver salvo como ISO-8859-1 e continuar dando problema coloque o utf8_encode
echo utf8_encode($xml->title);


2009/1/8 Eduardo Lagares <eduardo...@gmail.com>



--
André Ribeiro de Miranda
Analista Desenvolvedor
4a Soluções Tecnológicas
Tel.: (62) 3091-4144 / (62) 8112-9210
www.4asolucoes.com.br

André Ribeiro de Miranda

unread,
Jan 8, 2009, 7:52:52 PM1/8/09
to go...@googlegroups.com
Foi mal utf8_decode() ao invés de utf8_encode()

2009/1/8 André Ribeiro de Miranda <ardem...@gmail.com>

bob...@gmail.com

unread,
Jan 9, 2009, 5:30:36 AM1/9/09
to GOPHP
Utilizando a função utf8_decode na hora de mostrar o conteudo da tag
funcionou.
Eu tinha usado o utf8_decode na hora de colocar o valor na tag.
vlw pela ajuda =D


<?php header("Content-Type: text/html; charset=ISO-8859-1",true); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://
www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
<title>teste</title>
</head>
<body>
<?php
$xml = simplexml_load_string("<?xml version='1.0'
encoding='iso-8859-1' ?>
<document>
<title>árvore?</title>
<from>joão</from>
<to>jéssica</to>
<body>
teste
</body>
</document>");

echo(utf8_decode($xml->title));
?>

</body>
</html>




On 8 jan, 22:52, "André Ribeiro de Miranda" <ardemira...@gmail.com>
wrote:
> Foi mal utf8_decode() ao invés de utf8_encode()
>
> 2009/1/8 André Ribeiro de Miranda <ardemira...@gmail.com>
>
>
>
> > Confere qual a codificação que o arquivo foi salvo.
> > Para os acentos funcionar o arquivo tem que ter sido salvo com ISO-8859-1.
>
> > Se estiver salvo como ISO-8859-1 e continuar dando problema coloque o
> > utf8_encode
> > echo utf8_encode($xml->title);
>
> > 2009/1/8 Eduardo Lagares <eduardolaga...@gmail.com>
>
> > ue, vai usar text/html em um xml ? entao define seu header como:
>
> >> header("Content-Type: text/html;  charset=ISO-8859-1",true);
>
> >> acho que isso deve funcionar.
>
> >> 2009/1/8 bob2...@gmail.com <bob2...@gmail.com>
> >> eduardolaga...@gmail.com

Andre Rodovalho

unread,
Jan 9, 2009, 7:24:54 PM1/9/09
to go...@googlegroups.com
Pra mim, sempre usei o charset iso msm, o negócio principal é a funçao htmlentities() do PHP. Ela vai converter os caracteres especiais em caracteres HTML, dae, até se vc deixar desconfigurado no cabecalho vai funfar!

Reply all
Reply to author
Forward
0 new messages