CARACTERES ESPECIAIS NO DANFE
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.
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.
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.
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 &
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
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.
< = <
> = >
& = &
[Ô] = "
[ô] = '
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 &
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
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.
Mas estou dizendo também com relação a caracteres com acentos, cedilha etc.
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?
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