Dot-Net

XML - 根級別的數據無效

  • November 14, 2008

我有一個以 UTF-8 編碼的 XSD 文件,我執行它的任何文本編輯器都不會在文件開頭顯示任何字元,但是當我在 Visual Studio 的調試器中將其拉起時,我清楚地看到一個空的文件前面的框。

檔案盒

我也得到錯誤:

根級別的數據無效。第 1 行,位置 1。

替代文字

有誰知道這是什麼嗎?

更新:編輯文章以限定文件類型。它是由 Microsoft 的 XSD 創建者創建的 XSD 文件。

事實證明,答案是我看到的是一個字節順序標記,它是一個字元,它告訴載入文件的任何內容它的編碼內容。在我的例子中,它是用 utf-8 編碼的,所以對應的BOM 為EF BB BF,如下圖所示。要刪除它,我在Notepad++中打開它並點擊“Encode in UTF-8 without BOM”,如下圖所示:

在記事本++中保存.

要實際查看 BOM,我必須在TextPad中以二進制模式打開它:並在Google 上搜尋“ EF BB BF

二進制模式

我花了大約 8 個小時才發現這是導致它的原因,所以我想我會與大家分享這個。

更新:如果我閱讀了 Joel Spolsky 的部落格文章:每個軟體開發人員絕對、肯定必須了解 Unicode 和字元集(沒有藉口!)的絕對最低要求,那麼我可能不會遇到這個問題。

引用自:https://stackoverflow.com/questions/291455