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á 760 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á 760 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.

The popup will be closed in 10 seconds...