Rodrigo Crovador Postado 11 Fevereiro Postado 11 Fevereiro Notei que na unit PadraoNacional.Provider, procedure TratarRetornoConsultaNFSeporChave foi adicionado o seguinte: if NFSeXml <> '' then NFSeXml := DecodeToString(DeCompress(DecodeBase64(NFSeXml)), true); O DecodeToString está mudando o encode, saindo do UTF8, o que gera o erro indicado no tópico. Se mantido assim: NFSeXml := DeCompress(DecodeBase64(NFSeXml)); O erro não ocorre mais. Visualmente na IDE o texto do XML fica "parecendo que está com erros de acentuação", mas tanto o XML salvo quanto o valor das propriedades ao carregar o XML ficam na formatação correta. A duvida seria o motivo do DecodeToString ter sido adicionado neste ponto. Rodrigo Analista / Desenvolvedor Delphi
Gabriel Bonzanini Postado 11 Fevereiro Postado 11 Fevereiro (editado) @Rodrigo Crovador Na minha humilde opinião, acredito que o xml puro deva ficar formatado conforme foi enviado para aprovação, com acentos e demais caracteres especiais, tanto pela questão da integridade das informações, quanto pela praticidade de poder abrir o arquivo em qualquer editor e visualizar o conteúdo completo. Editado 11 Fevereiro por Gabriel Bonzanini Citação do colega
Rodrigo Crovador Postado 11 Fevereiro Postado 11 Fevereiro 26 minutos atrás, Gabriel Bonzanini disse: @Rodrigo Crovador Na minha humilde opinião, acredito que o xml puro deva ficar formatado conforme foi enviado para aprovação, com acentos e demais caracteres especiais, tanto pela questão da integridade das informações, quanto pela praticidade de poder abrir o arquivo em qualquer editor e visualizar o conteúdo completo. Depende um pouco do que se refere como XML puro. Se for o retorno do ambiente nacional, ele é puramente em UTF8. Se a IDE não tiver suporte a UTF8 no debug, ela fará a conversão para o formado suportado para exibir, mas somente no debug da IDE. Os arquivos gerados pelo componente ficam com a acentuação correta pois é feito o tratamento antes de salvar o XML ou carregar os valores. Rodrigo Analista / Desenvolvedor Delphi
Membros Pro marcosvillatore Postado 11 Fevereiro Membros Pro Postado 11 Fevereiro (editado) 18 horas atrás, Daniel Simoes disse: @Italo Giurizzato Junior e @Diego Foliene, Preciso de instruções, de como podemos reproduzir esse problema, nos Demos do ACBr... essa modificação, pode quebrar o suporte a FPC e Delphi POSIX, que usam UTF8 de forma nativa... O problema parece estar nas classes de NFSe, pois os documentos de NFe, NFCe, usam esses mesmos fontes, sem problemas com acentos em UTF8 Se precisar verificar como reproduzir, no meu caso aqui, é consulta de um NFSe pela chave no Nacional. Editado 11 Fevereiro por marcosvillatore
Patric Fonseca Postado 11 Fevereiro Postado 11 Fevereiro (editado) No meu caso aqui só passou do erro e sem os caracteres estranhos, alterando o `PadraoNacional.Provider.pas` adicionei o método function TACBrNFSeProviderPadraoNacional.DecompressNFSeXML(const Base64Gzip: String): String; var StringGzip: AnsiString; UTF8Result: UTF8String; Stream: TStringStream; begin Result := ''; if Base64Gzip = '' then Exit; try // Converte Base64 para string ANSI (dados binários) StringGzip := DecodeBase64(Base64Gzip); // Descomprime - assumindo que UnZip retorna UTF-8 UTF8Result := UnZip(StringGzip); Stream := TStringStream.Create(UTF8Result); // Converte UTF-8 para WideString (Unicode) corretamente Result := UTF8Decode(Stream.DataString); //UTF8Decode(UTF8Result); FreeAndNil(Stream); except on E: Exception do begin Result := ''; end; end; end; e no `ACBrXmlDocument` adicionei a linha if loadedDoc = nil then loadedDoc := xmlParseDoc( PAnsiChar( ACBrAnsiToUTF8( AXmlDocument ) ) ); dessa forma ficou sem o erro do utf-8 e sem os caracteres estranhos na hora de imprimir Editado 11 Fevereiro por Patric Fonseca
Gabriel Bonzanini Postado 11 Fevereiro Postado 11 Fevereiro 1 hora atrás, Rodrigo Crovador disse: Depende um pouco do que se refere como XML puro. Se for o retorno do ambiente nacional, ele é puramente em UTF8. Se a IDE não tiver suporte a UTF8 no debug, ela fará a conversão para o formado suportado para exibir, mas somente no debug da IDE. Os arquivos gerados pelo componente ficam com a acentuação correta pois é feito o tratamento antes de salvar o XML ou carregar os valores. A questão talvez seja que a variável NFSeXml é o binário do xml em ASCII, não UTF8.
Consultores Juliana Tamizou Postado 11 Fevereiro Consultores Postado 11 Fevereiro Boa tarde pessoal, Para este caso já temos uma task de número 8962 a qual está em tratativa na sprint atual. At. 3 Juliana Tamizou Gerente de Projetos ACBr / Diretora de Marketing AFRAC Ajude o Projeto ACBr crescer - Seja Pro (15) 2105-0750 (15)99790-2976. Discord Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!
Membros Pro Faberson A. Ferrasi Postado 13 Fevereiro Membros Pro Postado 13 Fevereiro On 2/11/2026 at 3:06 PM, Patric Fonseca said: AnsiString @Juliana Tamizou Existe alguma previsão para finalizar essa Sprint com a task:8962? Grato. Faberson Ferrasi - Ferrasi - Soluções em TI - [email protected]
Fundadores Daniel Simoes Postado 13 Fevereiro Fundadores Postado 13 Fevereiro Estamos testando uma possível, solução... Caso queiram testar.. seguem as Units modificadas... ACBrXmlDocument.pas PadraoNacional.Provider.pas 1 Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976.
Fundadores Daniel Simoes Postado 13 Fevereiro Fundadores Postado 13 Fevereiro Havia um erro na Unit PadraoNacional.Provider.pas... (falta de sincronismo) eu editei o tópico e subi uma nova versão 3 Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976.
Membros Pro mregiani Postado 13 Fevereiro Membros Pro Postado 13 Fevereiro @Daniel Simoes, Eu fiz as correções nos meus fontes do ACBr e estava consulta de NFSe por chave estava funcionando. Atualizei ACBr para versão 44804, recompilei os pacotes excluindo arquivos velhos, e infelizmente o problema persiste.
Fundadores Daniel Simoes Postado 13 Fevereiro Fundadores Postado 13 Fevereiro 12 minutos atrás, mregiani disse: Atualizei ACBr para versão 44804 Os fontes anexados acima, ainda não estão no SVN Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976.
Consultores valterpatrick Postado 13 Fevereiro Consultores Postado 13 Fevereiro 13 minutos atrás, Daniel Simoes disse: Os fontes anexados acima, ainda não estão no SVN Basicamente para testar o usuário deve atualizar os fontes do ACBr para a última revisão, após isto ele tem de copiar os arquivos para os respectivos caminhos (\\ACBr\Fontes\ACBrDFe\ACBrXmlDocument.pas e \\ACBrDFe\ACBrNFSeX\Provedores\PadraoNacional.Provider.pas) e recompilar o ACBr. Correto? Valter Patrick Gerente de Projetos na empresa CTEC Consultor ACBr (33)98400-0936 GitHub: https://github.com/valterpatrick Ajude o Projeto ACBr crescer - Assine o Clube PRO (15) 2105-0750 (15)99790-2976. Discord
Fundadores Daniel Simoes Postado 13 Fevereiro Fundadores Postado 13 Fevereiro 6 minutos atrás, valterpatrick disse: e recompilar o ACBr. Correto? sim... Mas se ele instalou o ACBr, com a opção "Deixar somente a LibXX..." então ele precisará rodar novamente o instalador... Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976.
Consultores valterpatrick Postado 13 Fevereiro Consultores Postado 13 Fevereiro 2 minutos atrás, Daniel Simoes disse: sim... Mas se ele instalou o ACBr, com a opção "Deixar somente a LibXX..." então ele precisará rodar novamente o instalador... A orientação é que desmarque a opção "Deixar somente a pasta LibXX no Library Path do Delphi" para esta situação especifico ou seria orientação para as demais vezes? Valter Patrick Gerente de Projetos na empresa CTEC Consultor ACBr (33)98400-0936 GitHub: https://github.com/valterpatrick Ajude o Projeto ACBr crescer - Assine o Clube PRO (15) 2105-0750 (15)99790-2976. Discord
Fundadores Daniel Simoes Postado 13 Fevereiro Fundadores Postado 13 Fevereiro 7 minutos atrás, valterpatrick disse: A orientação é que desmarque a opção "Deixar somente a pasta LibXX no Library Path do Delphi" para esta situação especifico ou seria orientação para as demais vezes? não precisa desmarcar... Mas se instalou com essa opção desmarcada... então o Delphi conhece os "Paths" de todos os fontes do ACBr, e consegue recompila-los, sob demanda 1 Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976.
Membros Pro Faberson A. Ferrasi Postado 16 Fevereiro Membros Pro Postado 16 Fevereiro @Daniel Simoes, Essas units serão disponibilizadas em produção no SVN, ainda estão ajustando? Grato. Faberson Ferrasi - Ferrasi - Soluções em TI - [email protected]
Membro Pro Verificado Patrick Knopf Postado 16 Fevereiro Membro Pro Verificado Postado 16 Fevereiro (editado) Acabei de atualizar o componente. Estou com o mesmo erro. Editado 16 Fevereiro por Patrick Knopf
Membro Pro Verificado xandebugmann Postado 16 Fevereiro Membro Pro Verificado Postado 16 Fevereiro Boa tarde, apenas para registro. Estou tentando emitir para CARIACICA - ES e estou com o mesmo problema. Tentei com essas units que o Daniel enviou e segue com erro.
Gênesis Interno Postado 16 Fevereiro Postado 16 Fevereiro 3 minutos atrás, xandebugmann disse: Boa tarde, apenas para registro. Estou tentando emitir para CARIACICA - ES e estou com o mesmo problema. Tentei com essas units que o Daniel enviou e segue com erro. Mesmo problema aqui para Cariacica e Vila Velha.
Rogerio Morato Scarazatti Postado 16 Fevereiro Postado 16 Fevereiro Em 10/02/2026 at 14:37, Gabriel Bonzanini disse: Boa tarde pessoal. Resolvi o problema alterando o método TACBrNFSeProviderPadraoNacional.TratarRetornoConsultaNFSeporChave, da unit PadraoNacional.Provider.pas; precisei adicionar a função ACBrAnsiToUTF8 , da seguinte forma: { acrescenta a função DecodeToString visando o tratamento correto de vogais acentuadas e cedilha. } if NFSeXml <> '' then NFSeXml := ACBrAnsiToUTF8(DecodeToString(DeCompress(DecodeBase64(NFSeXml)), True)); Deixo em anexo a unit, para que possam analisar se isto afetará outros provedores. PadraoNacional.Provider.pas 52.57 kB · 14 downloads Alterei aqui e funcionou, obrigado Gabriel! 1
Diogo Loff Postado 17 Fevereiro Postado 17 Fevereiro Creio que resolvi o problema de forma definitiva, se possivel verifiquem o post que fiz em uma questão da Betha.
Consultores EMBarbosa Postado 17 Fevereiro Consultores Postado 17 Fevereiro Em 16/02/2026 at 09:49, Faberson A. Ferrasi disse: Essas units serão disponibilizadas em produção no SVN, ainda estão ajustando? @Patrick Knopf, @xandebugmann, @Gênesis Interno, @Rogerio Morato Scarazatti, @Diogo Loff e outros interessados... As units só serão disponibilizadas no SVN depois que os testes e validações forem feitas. No momento precisamos que testem com as units providas pelo Daniel aqui (conforme abaixo) e reportem se funciona. Lembrando que após substituir essas units é necessário fazer uma nova instalação. Se puderem ajudar nos testes agradecemos: Em 13/02/2026 at 12:37, Daniel Simoes disse: Estamos testando uma possível, solução... Caso queiram testar.. seguem as Units modificadas... ACBrXmlDocument.pas 37.04 kB · 25 downloads PadraoNacional.Provider.pas 52.5 kB · 19 downloads Para quem está tentando propor possíveis soluções, elas precisam ser validadas em versões diferentes do Delphi (7 - 13) e Lazarus, além de funcionar no Windows e Linux. []'s Elton Profissionalize o ACBr na sua empresa, conheça o ACBr Pro. (15) 2105-0750 (15)99790-2976. Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas. Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Diogo Loff Postado 17 Fevereiro Postado 17 Fevereiro @EMBarbosa vou pegar estas duas units e testar aqui no ambiente de produção e retorno até a tarde. 1
Membro Pro Verificado Patrick Knopf Postado 17 Fevereiro Membro Pro Verificado Postado 17 Fevereiro (editado) 17 horas atrás, Rogerio Morato Scarazatti disse: Alterei aqui e funcionou, obrigado Gabriel! Fiz o mesmo e funcionou pra mim também. Editado 17 Fevereiro por Patrick Knopf 1
Recommended Posts