/ / Como removo o caractere BOM do meu arquivo xml [duplicado] - xml, xslt, unicode, byte-order-mark

Como faço para remover o caractere de BOM do meu arquivo xml [duplicate] - xml, xslt, unicode, byte-order-mark

Estou usando o xsl para controlar a saída do meu arquivo xml, mas o caractere da lista técnica está sendo adicionado.

Respostas:

165 para resposta № 1
# vim file.xml
:set nobomb
:wq

18 para resposta № 2

o Detector de BOM de arquivo (freeware para Windows) facilita a remoção da marca de ordem dos bytes.


2 para resposta № 3

só precisa adicionar isso no seu arquivo xslt:

<xsl:output method="text"
encoding="ASCII"/>

1 para resposta № 4

Apenas retire os dois primeiros bytes usando qualquer editor hexadecimal.


1 para resposta № 5

Remover o símbolo da lista técnica da string com o XSLT é bem simples:

<xsl:value-of select="translate(StringWithBOM,"","")"/>


0 para a resposta № 6

Fiquei com a impressão de que XML é incentivadopara ser gravado em Unicode, em alguma codificação Unicode e que determinadas codificações Unicode sejam especificadas para conter uma marca de ordem de bytes inicial. Sem essa marca de ordem de bytes, seu arquivo não será mais codificado corretamente em uma codificação Unicode e, portanto, não estará mais em XML correto. Os processadores XML são incentivados a não perdoar, a falhar imediatamente com o menor erro (como uma codificação Unicode incorreta). Que tipos de processadores XML você deseja quebrar?

Obviamente, remover uma marca de ordem de bytes de umO documento codificado em utf-8 faz com que esse documento pareça ser codificado em ASCII (não Unicode) e alguns processadores de texto são capazes apenas de usar documentos codificados em ASCII. É com isso que você está trabalhando?


0 para resposta № 7

Qual codificação de saída seu XSL está configurado para usar? Qual codificação é o documento de entrada? De onde vem a entrada e de onde foi salva / carregada / baixada nesse meio tempo?

XML e XSL devem padrão usando utf-8 se nada mais for especificado. Mas claramente, algo está errado aqui.

Uma coisa que pode acontecer é que o XML esteja sendo atendido por um servidor da Web configurado por padrão para servir na ISO-8859-1, um padrão muito bom ... pré-Unicode.

Ligeiramente fora de tópico, mas Artigo muito instrutivo de Joel sobre codificação de texto foi uma grande surpresa para mim. Existem muitas pessoas por aí que são muito inteligentes em programação, mas que persistem em pensar que existe algo como "texto simples" ou que chamam o texto "ASCII" ou "ANSI". É um problema para você realmente precisa entender se você ainda não o fez.