CARACTERES ESPECIAIS NO DANFE

FBGSYSTEMS 03/11/2014 15:32:38
#442269
Boa tarde pessoal.
Até hoje no meu sistema de NFe eu substituo os caracteres especiais no momento de criar o xml.
E então imprimo o Danfe utilizando o UniDanfe. Mas tem um cliente novo que diz que o sistema antigo dele valida a nota e imprime o Danfe com os caracteres especiais, exemplo: [Ô]&[Ô].

Alguém tem alguma idéia de como fazer isso ? Pois na SEFAZ aceita o DANFE apenas sem os mesmos caracteres. E na minha opinião não é correto imprimir o DANFE com algumas informações que não estão no XML assinado.
OCELOT 03/11/2014 15:46:55
#442270
Não vou dizer exatamente do DANFE, pois nunca trabalhei com ele, mas sim das regras do XML, e posso te dizer que ter um & no XML não faz apenas o SEFAZ não aceitar a DANFE, isso na verdade torna o XML em si inválido, o que pode ser a causa do SEFAZ não o aceitar.

Existem alguns caracteres que não devem aparecer nos textos do XML pois eles possuem um significado especial, nestes casos ainda é possível ter estes caracteres porém eles são representados por uma sequencia de escape.

São basicamente 5 caracteres, segue uma lista deles seguida da sequencia de escape que deve ser usado no lugar dele.
< = &​lt; 
> = &​gt;
& = &​amp;
[Ô] = &​quot;
[ô] = &​#39;

Então como não tenho como saber no caso do DANFE eu diria que se for possível para você testar uma nota em que tenha o caractere & trocando ele por &​amp;

OBS:Este site possui um bug em que se eu colocar a sequencia de escape ele renderiza de tal forma que o navegador vai interpretar esta sequencia e exibir o caractere correto em vez da sequencia em si, então inclui um caractere sem espaço entre o & e o resto da sequencia, visualmente o texto deve estar correto, porém se você copiar e colar este texto no seu código ele não vai funcionar, você deve digitar ele
FBGSYSTEMS 03/11/2014 15:51:33
#442271
A sequencia de escape apareceu aqui como o resultado dele rsrs..
Mas estou dizendo também com relação a caracteres com acentos, cedilha etc.
OCELOT 03/11/2014 16:02:49
#442272
Acentos deveriam ser de acordo com a codificação usada, por exemplo se for UTF-8 o XML em si deveria aceitar os acentos, porém como você está usando VB6 não existe uma forma fácil de se gravar um arquivo em UTF-8.

Veja que se você gravar o arquivo apenas com caracteres em que o código ASC é < 127 ele é basicamente um arquivo UTF-8 válido, porém como os caracteres com acento ficam acima do ASC 127 então provavelmente se você salvar o arquivo ele não deve ser um arquivo UTF-8 válido, o que vai fazer com que alguns caracteres inválidos estejam presente no arquivo tornando o XML em si inválido.

Então a questão que fica é, como você está gravando o XML?
Tópico encerrado , respostas não são mais permitidas