Вопрос

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

Коробка в файле

Я также получаю сообщение об ошибке:

Данные на корневом уровне недействительны. Строка 1, позиция 1.

alt text

Кто-нибудь знает, что это такое?

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

Это было полезно?

Решение

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

Сохранение в NotePad ++.

Чтобы увидеть спецификацию, мне пришлось открыть ее в TextPad в двоичном режиме: и выполнить поиск Google для " EF BB BF " .

двоичный режим

Мне потребовалось около 8 часов, чтобы выяснить, что это было причиной, поэтому я решил поделиться этим со всеми.

Обновление . Если бы я прочитал сообщение в блоге Джоэла Спольски: Абсолютный минимум Каждый разработчик программного обеспечения Абсолютно, положительно должен знать о Юникоде и наборах символов (без извинений!) , тогда у меня, возможно, не было этой проблемы.

Другие советы

вот как вы это делаете с vim:

# vim file.xml
:set nobomb
:wq
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top