Domanda

Ho un file XSD codificato in UTF-8 e qualsiasi editor di testo in cui lo eseguo non mostra alcun carattere all'inizio del file, ma quando lo tiro nel debugger di Visual Studio, chiaramente vedere una casella vuota davanti al file.

Casella nel file

Ottengo anche l'errore:

I dati a livello di radice non sono validi. Riga 1, posizione 1.

alt text

Qualcuno sa di cosa si tratta?

Aggiornamento: post modificato per qualificare il tipo di file. È un file XSD creato dal creatore XSD di Microsoft.

È stato utile?

Soluzione

Si scopre che la risposta è che quello che vedo è un Contrassegno di byte , che è un personaggio che dice a qualunque cosa stia caricando il documento in che cosa è codificato. Nel mio caso, è codificato in utf-8, quindi la DBA corrispondente era EF BB BF , come mostrato di seguito. Per rimuoverlo, l'ho aperto in Notepad ++ e ho fatto clic su " Codifica in UTF-8 senza distinta base " ;, come mostrato di seguito:

Salvataggio in NotePad ++.

Per vedere effettivamente la DBA, ho dovuto aprirla in TextPad in modalità binaria: e ho condotto a Ricerca Google per " EF BB BF " .

modalità binaria

Mi ci sono volute circa 8 ore per scoprire che questo era ciò che lo stava causando, quindi ho pensato di condividerlo con tutti.

Aggiornamento : se avessi letto il post sul blog di Joel Spolsky: Il minimo assoluto Ogni sviluppatore di software deve assolutamente conoscere positivamente Unicode e set di caratteri (senza scuse!) , quindi potrei non aver avuto questo problema.

Altri suggerimenti

ecco come lo fai con vim:

# vim file.xml
:set nobomb
:wq
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top