40

UTF-8 でエンコードされた XSD ファイルがあり、それを実行するテキスト エディターではファイルの先頭に文字が表示されませんが、Visual Studio のデバッガーでプルアップすると、明らかに空の文字が表示されます。ファイルの前のボックス。

ボックスインファイル

エラーも表示されます:

ルート レベルのデータは無効です。行 1、位置 1。

代替テキスト

これが何かわかる人いますか?

更新: ファイルの種類を限定するために投稿を編集しました。これは、Microsoft の XSD 作成者によって作成された XSD ファイルです。

4

2 に答える 2

58

答えは、私が見ているのはByte Order Markであるということです。これは、ドキュメントをロードしているものに、それがエンコードされているものを伝える文字です。EF BB BF以下に示すように、BOM は でした。それを削除するには、メモ帳++で開き、以下に示すように「BOMなしでUTF-8でエンコード」をクリックしました。

NotePad++ での保存.

実際に BOM を表示するには、バイナリ モードのTextPadでBOM を開き、Google で " "を検索する必要EF BB BFがありました。

バイナリモード

これが原因であることが判明するまでに約8時間かかったので、これをみんなと共有しようと思いました.

更新: Joel Spolsky のブログ投稿: The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)を読んでいれば、この問題はなかったかもしれません。

于 2008-11-14T21:15:28.627 に答える
29

これがvimでそれを行う方法です:

# vim file.xml
:set nobomb
:wq
于 2008-11-18T22:58:51.817 に答える