Jump to content
Mário Rui Melo

Erro de encoding, ao abrir um XML

Recommended Posts

Mário Rui Melo

Bom dia,

estou com um problema ao abrir um XML, devido ao encoding de alguns caracteres.

ao executar este código:

$reader = new XMLReader();

$filename = 'teste.xml';

$resF = $reader->open( $filename );

while ( $reader->read() ) {

...

Dá o seguinte erro: XMLReader::read() [xmlreader.read]: input conversion failed due to input error, bytes 0x90 0x54 0x49 0x43

Se alterar o XML, num editor HEX, e mudar de 0xc2 0x90 para 0xc3 0x89, o problema fica resolvido mas, o que eu queria era precaver essas situações, por exemplo, validando se o encoding do ficheiro é o q realmente está definido aqui: <?xml version="1.0" encoding="Windows-1252"?>

O problema é q esse conjunto 0xc2 0x90 não é válido para o encoding definido...

Penso q a aplicação que gerou o XML é q gerou este erro, mas não tenho acesso a essa aplicação.

Alguém pode dar uma ajuda?

Obrigado!

Edited by Mário Rui Melo

Cumprimentos,

Mário Rui Melo

Share this post


Link to post
Share on other sites
yoda

Tens de fazer um bypass aos erros para conseguires ler o ficheiro.

Esta é a forma que costumo usar (repara no @ que suprime os erros do documento) :

$doc = new DomDocument();
@$doc->load('teste.xml');
$xpath = new DOMXpath($doc);

if ($e = $xpath->query('/node'))
{
  foreach($e as $el)
  {
          // blabla
  }
}

Edited by yoda

Share this post


Link to post
Share on other sites
Mário Rui Melo

Yoda, obrigado mas o resultado é o mesmo.

De qualquer forma, depois de muito investigar, descobri q, se alterar a primeira linha de <?xml version="1.0" encoding="Windows-1252"?> para <?xml version="1.0" encoding="iso-8859-1"?> funciona...

Consegue-se então perceber que, um qq sw q gera SAFT's está a gerar XML com o encoding errado...

Como é q podem ser vendidos SW's por preços exorbitantes, com erros destes?!?!

Mas, afinal, quem está por trás desse SW não programadores como nós????

Valha-me o Santo Padroeiro dos Programadores :D

Obrigado


Cumprimentos,

Mário Rui Melo

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.