Ir para conteúdo
  • Cadastre-se

dev botao

Erro ao desserializar XML da NFe - Acentuação


Ver Solução Respondido por Daniel InfoCotidiano,
  • Este tópico foi criado há 809 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

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

 

  • Consultores
  • Solution
Postado

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
 

  • Curtir 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

  • Fundadores
Postado

@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;

 

  • Curtir 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.

  • Este tópico foi criado há 809 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.