Voltar para base de conhecimento

Erro E1229: XML não está utilizando codificação UTF-8

Atualizado há cerca de 22 horas0 visualizações0 acharam útil
NFSeDPSTransmissaoXMLErroFiscal

Acentos e cedilhas só chegam inteiros em UTF-8.

O Erro E1229 acontece quando o XML enviado não está codificado em UTF-8.

Abrir NFS-e

Por que acontece o Erro E1229

A DPS não trafega como XML puro. Antes de sair, ela passa por duas etapas:

EtapaO que acontece
1. CompressãoO XML é comprimido em GZip, para reduzir o tamanho
2. CodificaçãoO resultado é convertido para base64, para caber num campo de texto

Do outro lado, o Sistema Nacional desfaz o caminho: decodifica o base64, descomprime o GZip e só então lê o XML. Um erro em qualquer dessas etapas barra a nota antes de o conteúdo dela ser avaliado — não há nada de errado com o que você declarou, apenas com o pacote que o transportou.

UTF-8 é a única codificação aceita. Ela é o padrão da web e representa todos os caracteres do português — acentos, cedilha, til — de forma que qualquer sistema consegue ler.

O problema aparece com codificações antigas, como ISO-8859-1 ou Windows-1252, ainda comuns em sistemas legados e em arquivos gerados no Windows. Nelas, "São Paulo" e "José" ocupam bytes diferentes dos que o UTF-8 usa, e o Sistema Nacional lê caracteres corrompidos ou rejeita o documento.

CodificaçãoAceita
UTF-8Sim
ISO-8859-1, Windows-1252Não

Há um detalhe que engana: declarar UTF-8 não é o mesmo que estar em UTF-8. Um arquivo pode trazer encoding="UTF-8" na primeira linha e ter sido gravado em outra codificação — a declaração é apenas um rótulo.

As causas mais comuns:

Arquivo gerado por sistema legado que grava em ISO-8859-1.

Declaração correta e conteúdo em outra codificação, o pior caso, porque parece certo.

Conversão feita no meio do caminho por uma ferramenta intermediária.

BOM no início do arquivo, que algumas implementações não toleram.

No Berga

DFe › NFSe — a codificação é responsabilidade do sistema.

Deixa que o Berga resolve gerando tudo em UTF-8 de ponta a ponta: nome com acento, cedilha em razão social e endereço com til chegam inteiros ao Sistema Nacional. Conheça o Berga.

Como resolver o Erro E1229

  1. 1
    Confirme que o arquivo está gravado em UTF-8, e não apenas declarado como tal.
  2. 2
    Havendo sistema legado na origem, converta antes de comprimir.
  3. 3
    Remova o BOM do início do arquivo.
  4. 4
    Reenvie.

Como evitar o Erro E1229

Padronize UTF-8 em toda a cadeia de geração. Uma conversão no meio do caminho desfaz o trabalho feito na origem.

Se o Erro E1229 continuar

Erros vizinhos: estrutura mal formada, falha na decodificação base64 e erro na assinatura, que a codificação também derruba.

Persistindo, abra um chamado informando o horário do envio.

Referência: Anexo I do leiaute da DPS e da NFS-e (SEFIN/ADN), Sistema Nacional NFS-e.

Este artigo foi útil?