Ir para conteúdo
  • Cadastre-se

dev botao

Erro nos acentos do XML da NFe


tobexy
  • Este tópico foi criado há 2193 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom dia pessoal!

Estamos nos deparando com um problema na geração do XML para NFe com acentuação, o método "ACBrNFe.NotasFiscais.GravarXML()" grava o arquivo na pasta teoricamente sem problema, porém ao fazer um "TStringList.LoadFromFile" pelo Delphi XE2 os caracteres com acentos vem com problema, exemplo, o caracter í vem Ã-. O mesmo acontece quando damos um "ShowMessage()" usando o método "ACBrNFe.NotasFiscais.Items[0].XML". Ou seja, não é uma situação que acontece apenas no debug do Delphi. Vimos no tópico Link que foi falado sobre isso porém para resolver outra coisa, mas assim como lá, aqui a situação acontece na unit ACBrUtil, método "NativeStringToUTF8" é chamado o "SetCodePage(RBS, 0, False)" e nesse momento que é alterado. A título de curiosidade, notamos que ao abrir o XML pelo Notepad++ a formatação está em "UTF-8 (sem BOM)" se converter para "UTF-8" e salvar, o arquivo passa a carregar certo no Delphi e mostra corretamente no "ShowMessage()". Outra coisa que percebemos é que se circundar o método dessa forma "Utf8ToAnsi(ACBrNFe.NotasFiscais.Items[0].XML)" passa a retornar corretamente. Lembrando, esse problema só acontece olhando para todo o arquivo XML nos 2 métodos acima mencionados, se tentarmos pegar o resultado, por exemplo, "ACBrNFe.NotasFiscais.Items[0].nfe.cobr.dup.items[0].ndup" a situação não acontece, é retornada a palavra acentuada corretamente.

Para simular no exemplo em "..\ACBr\Exemplos\ACBrDFe\ACBrNFe\Delphi", colocarmos no botão “Importar TXT/XML” dois "ShowMessage()" antes da linha 1357, conforme a imagem em anexo:

    ShowMessage(ACBrNFe1.NotasFiscais.Items[0].XML);
    ShowMessage(Utf8ToAnsi(ACBrNFe1.NotasFiscais.Items[0].XML));

E o resultado conforme descrevi estão tbm em imagem em anexo, além do arquivo XML.

Nossa dúvida é, vamos ter que fazer isso, colocar Utf8ToAnsi(), em todo lugar ou existe outra forma de pegar o XML inteiro do componente acentuado corretamente?

1.png

2.png

41170111434649000137550010000903371000903371-nfe.xml

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • 2 semanas depois ...

Tenho o mesmo problema, também no XE2, última versão do ACBr, carrego um XML com acentos no componente do ACBr, chamo o método para ver o nome do primeiro item, e ele aparece carregado de caracteres estranhos.

Alguém tem alguma ideia do por quê? A solução seria usar o Utf8ToAnsi como o Tobexy fez?

Editado por pedron
Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...
  • Este tópico foi criado há 2193 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.

The popup will be closed in 10 segundos...