Ir para conteúdo
  • Cadastre-se

dev botao

Erro ao carregar XML NFSe : Input is not proper UTF-8, indicate encoding !Bytes: 0xC3 0x3F 0xC2 0xA9


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

Recommended Posts

  • Membros Pro
Postado

Boa tarde a todos.
Vi que esse problema foi corrigido no método LoadFromFile do componente NFSeX.
Já no método LoadFromString o problema ainda persiste.

Ou existe outro método que não ocorra esse probelema.

Att

Souza.

  • Moderadores
Postado
31 minutos atrás, Souza disse:

Boa tarde a todos.
Vi que esse problema foi corrigido no método LoadFromFile do componente NFSeX.
Já no método LoadFromString o problema ainda persiste.

Ou existe outro método que não ocorra esse probelema.

Att

Souza.

boa tarde

estranho pois se notarmos o loadfromfile usa o loadfromstring

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Consultores
Postado

Boa tarde.

Por favor, pode compartilhar o XML que está usando para testes?

Caso julgue que tenha informações sensíveis e não possa colocar aqui, por favor, siga as orientações deste tópico: 

 

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(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 !!

  • Consultores
Postado

Tópico movido para a área do SAC, para que o SLA de respostas seja considerado

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(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 !!

  • Consultores
Postado

Boa tarde Souza,

Esse XML foi retornado pelo webservice do provedor ou você baixou ele do site da prefeitura?

Se XML foi retornado pelo webservice do provedor o mesmo não foi salvo em disco e sim no banco de dados?

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Postado

Boa tarde Itálo.
Utilizei o comando "ConsultaNFSeporNumero". do ACBRNFSeX.
O Mesmo xml se eu utilizar o comando LoadFromFile, ele carrega normalmente sem erro.

Essa NFSe não foi gerada pelo ACBr, e sim pelo site da prefeitura.
Não sei se respondi sua pergunta.

  • Consultores
  • Solution
Postado

Nem sempre o XML gerado pelo Site da prefeitura está nos padrões do XML gerado pelo WebService(que é o esperado pelo componente).

Por isso o questionamento.

Quanto ao seu problema em questão.

Por favor, seus fontes estão atualizados? Pode fazer um teste com o programa exemplo?

Fiz um teste com o XML que disponibilizou e o programa exemplo usando o botão Imprimir DANFSe.

Primeiro assim: 

if OpenDialog1.Execute then
begin
  ACBrNFSeX.NotasFiscais.Clear;
  ACBrNFSeX.NotasFiscais.LoadFromFile(OpenDialog1.FileName, False);
  ACBrNFSeX.NotasFiscais.Imprimir;
end;

E depois assim:

var
  XML: TStrings;
begin
  if OpenDialog1.Execute then
  begin
    ACBrNFSeX1.NotasFiscais.Clear;
    XML := TStringList.Create;
    try
      XML.LoadFromFile(OpenDialog1.FileName);
      ACBrNFSeX1.NotasFiscais.LoadFromString(XML.Text, False);
    finally
      XML.Free;
    end;
    ACBrNFSeX1.NotasFiscais.Imprimir;
  end;
end;

Em ambos os casos mostrou o preview da impressão.

IMPORTANTE citar que antes de fazer a leitura do XML, você precisa configurar a cidade no componente.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(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
Postado

Boa noite Diego, se eu entendi .
sempre terei de carregar o arquivo xml para dentro do componente ?


Att

Souza.

  • Membros Pro
Postado

No meu cenário, eu envio o arquvio xml em txt via API.
No servidor da API, estava carregando a string no componente, e deu o erro acima.

Fiz um teste, Carreguei a string do xml em um TMemo, salvei na unidade c:\, e o problema continua..

image.thumb.png.0b640b9c560bf3bb74088c36d2eebc0d.png

  • Consultores
Postado
12 horas atrás, Souza disse:

Boa noite Diego, se eu entendi .
sempre terei de carregar o arquivo xml para dentro do componente ?


Att

Souza.

Bom dia.

Antes de carregar seja usando o método LoadFromString ou o LoadFromFile, você precisa configurar a cidade no componente.

No seu caso, considerando o XML de exemplo que disponibilizou, precisa configurar:

  with ACBrNFSeX1.Configuracoes.Geral do
  begin
    LayoutNFSe := TLayoutNFSe(cbLayoutNFSe.ItemIndex);
    CodigoMunicipio := CodIBGEdeSaoPaulo;
  end;  

 

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(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 !!

  • Consultores
Postado

Bom dia Souza,

Se você abrir o código do componente, mais precisamente o que se refere ao LoadFromFile, vai notar que o mesmo se utiliza do LoadFromString.

Se você tem o XML salvo em disco, devemos usar o LoadFromFile, mas se você tem ele salvo no banco de dados deve-se usar o LoadFromString ou LoadFromStream.

Não faz sentido você pegar o XML do banco de dados, salvar em disco, depois carregar ele para um TStringList para usar o LoadFromString.

Encurta esse processo, já passa direto para o LoadFromString o XML lido do banco de dados.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Postado

Bom dia Italo, 
Estou fazendo esse processo, utilizar o LoadFromString, só salvei em disco para fazer um teste, conforme orientado pelo Diego, (não sei se entendi direito o que ele quis dizer).
Vou seguir os testes por aqui, 
por enquanto obrigado a todos.


 

  • Consultores
Postado
13 minutos atrás, Souza disse:

Bom dia Italo, 
Estou fazendo esse processo, utilizar o LoadFromString, só salvei em disco para fazer um teste, conforme orientado pelo Diego, (não sei se entendi direito o que ele quis dizer).
Vou seguir os testes por aqui, 
por enquanto obrigado a todos.


 

Os trechos de código que coloquei foram apenas sugestão de teste.

Do que eu disse, a orientação mais importante é que você deve configurar a cidade no componente antes de fazer a leitura do XML.

Consultor SAC ACBr

Diego Folieni
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(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
Postado

Bom dia Diego.
Sim, antes de qualquer operação com o componente, faço alimentação das propriedades.
Inclusive a cidade, 
estou continuando com os testes, mais uma vez obrigado.
Assim que descobrir , posto aqui.

  • Curtir 1
  • Membros Pro
Postado

Bom dia Italo e Diego.
Refiz todo o processo, agora deu certo.
Não identifiquei onde foi minha falha.

Obrigado pela atenção.
 

  • Curtir 1
  • Este tópico foi criado há 586 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.