Jump to content

dev botao

Erro ao desserializar XML da NFe - Acentuação


Go to solution Solved by Daniel InfoCotidiano,
  • Este tópico foi criado há 539 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

boa tarde Pessoal, tudo bem?

estou com um probleminha aqui na hora de carregar o xml da NFe...

no xml o nome da mercadoria está acentuado e quando desserializa para o objeto ele substitui Ê por Ê, entre outros... tem como eu corrigir isso? a configuração removeracentos não funciona nesse caso... o xml foi baixado direto da sefaz.

unknown.png.f7ed26f440cd64971316679539e44e3d.png

 

na impressão do DANFE, está tudo ok...

unknown.png.61d94fd8892a54569d35b0df2dad3718.png

 

Link to comment
Share on other sites

  • Consultores
  • Solution

Boa tarde !
Notamos que no XML não esta identificado o formato UTF-8, então se puder fazer um teste por favor
Abra o XML com um editor de texto (bloco de notas)  e adicione: <?xml version="1.0" encoding="UTF-8"?> na primeira linha.
Vai ficar assim:
<?xml version="1.0" encoding="UTF-8"?>
<nfeProc versao="4.00" xmlns="http://www.portalfiscal.inf.br/nfe">
    <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
        <infNFe Id="NFe35SSSS08500163XXXXX6550010000000021500000CC6" versao="4.00">
Acredito que com esta tag identificando vai solucionar o problema.
Aguardo um feedback
 

  • Like 2
Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Link to comment
Share on other sites

  • Fundadores

@Bruno Lamonato,

Todo XML, deve ser precedido de uma "declaração", que informa como ele é codificado..

https://www.w3resource.com/xml/declarations.php

No caso dos XMLs de Documentos Fiscais brasileiros, fica padronizado que eles devem ser em UTF8, portanto a declaração obrigatória em todo XML de Documento Fiscal, seria algo como:

<?xml version='1.0' encoding='UTF-8' ?>

O arquivo que você nos enviou em privado, não tem tal declaração, e isso confunde as bibliotecas que manipulam XML

Observe que mesmo o Microsoft Edge tem problemas a lidar com XMLs sem a declaração inicial

image.png

 

Como você obteve esse XML ? seria importante reportar ao Site / Empresa, que eles estão fornecendo um XML fora da especificação...

 

Como Workaround, e presumindo que todos os XMLs recebidos estariam em UTF8 (pois é o padrão brasileiro) você poderia criar uma rotina simples, que adiciona a declaração ao XML se necessário..

Na verdade, o ACBrUtil já tem um método que faz exatamente isso... Exemplo de uso:

var
  SL: TStringList;
  XmlDuvidoso, XmlCorreto: String;
begin
  SL := TStringList.Create;
  try
    // Lendo O XML
    XmlDuvidoso := SL.LoadFromFile('C:\TEMP\Arquivo.xml');
    XmlCorreto := InserirDeclaracaoXMLSeNecessario(XmlDuvidoso);   // <-------- AQUI ---------
  finally
    SL.Free;
  end;

 

  • Like 3
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

  • Este tópico foi criado há 539 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

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.