У меня есть файл XSD, закодированный в UTF-8, и любой текстовый редактор, через который я его запустил, не показывает никаких символов в начале файла, но когда я вытаскиваю его в отладчике Visual Studio, я ясно вижу пустой поле перед файлом.

Я тоже получаю сообщение об ошибке:
Данные на корневом уровне недействительны. Строка 1, позиция 1.

Кто-нибудь знает, что это?
Обновление: сообщение отредактировано для уточнения типа файла. Это файл XSD, созданный создателем XSD от Microsoft.





Оказывается, ответ заключается в том, что я вижу Знак порядка байтов, который представляет собой символ, который сообщает всему, что загружает документ, во что он закодирован. В моем случае он закодирован в utf-8, поэтому соответствующая спецификация была EF BB BF, как показано ниже. Чтобы удалить его, я открыл его в Блокнот ++ и щелкнул «Кодировать в UTF-8 без спецификации», как показано ниже:
.
Чтобы действительно увидеть спецификацию, мне пришлось открыть ее в TextPad в двоичном режиме: и провести Поиск в Google по запросу "EF BB BF".

Мне потребовалось около 8 часов, чтобы выяснить, что это было причиной, поэтому я решил поделиться этим со всеми.
Обновлять: Если бы я прочитал сообщение в блоге Джоэла Спольски: Абсолютный минимум. Каждый разработчик программного обеспечения должен абсолютно точно знать о Unicode и наборах символов (без оправданий!), то, возможно, у меня не было бы этой проблемы.
вот как это сделать с помощью vim:
# vim file.xml
:set nobomb
:wq