XML - 根级别的数据无效
-
08-07-2019 - |
题
我有一个用UTF-8编码的XSD文件,我运行它的任何文本编辑器都没有在文件开头显示任何字符,但是当我在Visual Studio的调试器中提取它时,我清楚了看到文件前面的空框。
我也得到错误:
根级别的数据无效。第1行,第1位。
任何人都知道这是什么?
更新:编辑帖子以限定文件类型。这是由Microsoft的XSD创建者创建的XSD文件。
解决方案
事实证明,答案是我所看到的是字节顺序标记 ,这是一个字符,告诉任何正在加载文档的内容。在我的例子中,它是用utf-8编码的,所以相应的BOM是EF BB BF
,如下所示。要删除它,我在 Notepad ++ 中打开它,然后点击<!> ;在没有BOM <!>的情况下编码为UTF-8,如下所示:
。
要实际查看BOM,我必须在二进制模式下在 TextPad 中打开它,然后进行
我花了大约8个小时才知道这是造成它的原因,所以我想我会和大家分享这个。
更新:如果我读过Joel Spolsky的博文: 绝对最低每个软件开发人员绝对,必须知道关于Unicode和字符集(没有借口!) ,那么我可能没有遇到过这个问题。
其他提示
这是你用vim做的:
# vim file.xml
:set nobomb
:wq
不隶属于 StackOverflow