Pergunta

Eu tenho um arquivo XSD que está codificado em UTF-8, e qualquer editor de texto que eu executá-lo através não mostra qualquer personagem no início do arquivo, mas quando eu puxar para cima no depurador do Visual Studio, eu claramente ver uma caixa vazia na frente do arquivo.

Caixa de arquivo ??

Eu também recebo o erro:

Data no nível de raiz é inválido. Linha 1, posição 1.

text alt

Alguém sabe o que é isso?

Update: Editado pós para qualificar o tipo de arquivo. É um arquivo XSD criado pelo criador XSD, da Microsoft.

Foi útil?

Solução

Acontece, a resposta é que o que eu estou vendo é um Byte Order Mark , que é um personagem que diz tudo o que é carregar o documento o que é codificada. no meu caso, é codificados em UTF-8, de modo que o BOM correspondente foi EF BB BF, como mostrado abaixo. Para removê-lo, abri-lo no Notepad ++ e clicou em "Encode em UTF -8 sem BOM", como mostrado abaixo:

Saving in Notepad ++.

Para realmente ver o BOM, eu tive que abri-lo no TextPad no modo binário :, e conduzida um Google procurar "EF BB BF" .

modo binário

Levei cerca de 8 horas para descobrir isso era o que estava causando isso, então eu pensei que eu iria compartilhar isso com todos.

Atualizar : Se eu tinha lido post de Joel Spolsky: O desenvolvedor Absolute Minimum cada Software Absolutamente, Positivamente Precisa Saber Sobre Unicode e Conjuntos de caracteres (Sem desculpas!) , então eu não poderia ter tido este problema.

Outras dicas

aqui está como você fazê-lo com vim:

# vim file.xml
:set nobomb
:wq
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top