Olá.
Estou fazendo download de DFe, e encontrei um problema em uma NFe.
No XML, o campo xNome do emitente retorna assim (escapado HTML):
<emit>
<xNome>AUTO POSTO CHAPAD&Atilde;O LTDA</xNome>
<xFant>307 CHAPAD&Atilde;O</xFant>
</emit>
O emitente deve ter feito alguma conversão nos dados ao enviar para o SEFAZ.
Quando vou acessar o campo "xNome" (ACBrNFe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[item].resDFe.xNome), está retornando assim:
AUTO POSTO CHAPAD\u00C3O LTDA
Ou seja, está retornando em UTF-8 escapado, se não me engano é assim que funciona em JSON.
Não sei se esse comportamento do componente está correto.
Se eu tento filtrar no banco de dados (Postgresql), em dados momentos dá erro de conversão de UTF-8 (meu banco é Latin1), então eu preciso fazer a conversão desses dados.
Para contornar, utilizei algo assim (só exemplo):
texto := '{"xNome":"AUTO POSTO CHAPAD\u00C3O LTDA"}';
LJSONValue := TJSONObject.ParseJSONValue(TEncoding.UTF8.GetBytes(texto),0);
saida := LJSONValue.ToString;
// saida = '{"xNome":"AUTO POSTO CHAPADÃO LTDA"}'
Eu estou guardando um JSON com vários dados, então essa conversão não é problema pra mim.