Rejeição 402: XML da área de dados com codificação diferente de UTF-8
Descrição oficial da SEFAZ: XML da área de dados com codificação diferente de UTF-8
O que significa
A SEFAZ exige que o XML da NF-e esteja codificado em UTF-8, e o arquivo enviado veio em outra codificação.
Por que acontece
Normalmente o XML foi gerado ou regravado em ISO-8859-1 ou Windows-1252, ou a declaração do cabeçalho diz UTF-8 mas os bytes do arquivo estão em outra codificação — o que costuma acontecer quando o arquivo passa por um editor de texto, por um banco de dados com collation diferente ou por uma manipulação manual depois de gerado.
Como resolver
Gere ou converta o XML em UTF-8 de verdade, não apenas trocando a declaração do cabeçalho. Verifique se acentos e cedilhas aparecem corretos ao abrir o arquivo como UTF-8. Como qualquer alteração no XML invalida a assinatura, assine de novo depois da conversão e retransmita.
Como evitar
Nunca edite ou regrave o XML fora do sistema emissor, e garanta UTF-8 em toda a cadeia de geração e transporte.