XML-les données au niveau de la racine sont invalides

j'ai un fichier XSD qui est encodé en UTF-8, et tout éditeur de texte que je l'exécute ne montre aucun caractère au début du fichier, mais quand je le sors dans le débogueur de Visual Studio, je vois clairement une boîte vide devant le fichier.

Box in file

j'obtiens aussi l'erreur:

les données au niveau de la racine sont invalides. Ligne 1, position 1.

alt text

quelqu'un sait ce que c'est?

mettre à Jour le: Édité le post pour qualifier le type de fichier. C'est un fichier XSD créé par le créateur XSD de Microsoft.

38
demandé sur Community 2008-11-15 00:14:15

2 réponses

il s'avère, la réponse est que ce que je vois est un octet marque D'ordre , qui est un caractère qui dit tout ce qui charge le document ce qu'il est encodé. Dans mon cas, il est encodé en utf-8, donc le BOM correspondant était EF BB BF , comme montré ci-dessous. Pour l'enlever, Je l'ai ouvert dans Notepad++ et j'ai cliqué sur "Encoder dans UTF-8 sans BOM", comme montré ci-dessous:

Saving in NotePad++ .

pour voir effectivement le BOM, j'ai dû l'ouvrir dans TextPad en mode binaire:, et a mené une recherche Google pour " EF BB BF .

binary mode

il m'a fallu environ 8 heures pour découvrir ce qui en était la cause, alors j'ai pensé que je partagerais cela avec tout le monde.

mise à jour : si J'avais lu le billet de blog de Joel Spolsky: le Minimum absolu chaque développeur de logiciel doit absolument, positivement connaître Unicode et les jeux de caractères (pas D'Excuses!) , alors je n'aurais pas eu ce problème.

54
répondu George Stocker 2017-02-08 14:09:04

voici comment vous le faites avec vim:

# vim file.xml
:set nobomb
:wq
29
répondu Benedikt Waldvogel 2008-11-18 22:58:51