質問

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

ファイル内のボックス

エラーも表示されます:

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

alt text

これが何であるか知っていますか?

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

役に立ちましたか?

解決

結局のところ、答えはバイトオーダーマーク 、これはドキュメントの読み込み中に何がエンコードされているかを伝える文字です。私の場合、utf-8でエンコードされているため、以下に示すように、対応するBOMは EF BB BF でした。削除するには、 Notepad ++ で開いて、「エンコード」をクリックします以下に示すように、BOMなしのUTF-8:

NotePad ++で保存

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

バイナリモード

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

更新:Joel Spolskyのブログ投稿を読んだ場合: すべてのソフトウェア開発者がユニコードと文字セットについて絶対的かつ積極的に知っておく必要のある絶対的な最低限(言い訳はありません!) 、この問題はなかったかもしれません。

他のヒント

vimでこれを行う方法は次のとおりです。

# vim file.xml
:set nobomb
:wq
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top