Pregunta

Tengo un archivo XSD que está codificado en UTF-8, y cualquier editor de texto con el que lo ejecute no muestra ningún carácter al comienzo del archivo, pero cuando lo levanto en el depurador de Visual Studio, claramente ver un cuadro vacío delante del archivo.

Cuadro en archivo ??

También recibo el error:

Los datos en el nivel raíz no son válidos. Línea 1, posición 1.

texto alternativo ??

¿Alguien sabe qué es esto?

Actualización: publicación editada para calificar el tipo de archivo. Es un archivo XSD creado por el creador XSD de Microsoft.

¿Fue útil?

Solución

Resulta que la respuesta es que lo que estoy viendo es una Marca de orden de bytes , que es un carácter que indica qué está cargando el documento en qué está codificado. En mi caso, está codificado en utf-8, por lo que la lista de materiales correspondiente fue EF BB BF , como se muestra a continuación. Para eliminarlo, lo abrí en Notepad ++ e hice clic en " Codificar en UTF-8 sin BOM '', como se muestra a continuación:

Guardando en NotePad ++.

Para ver realmente la lista de materiales, tuve que abrirla en TextPad en modo binario :, y conduje una Búsqueda de Google para " EF BB BF " .

modo binario

Me tomó cerca de 8 horas descubrir que esto era lo que lo causaba, así que pensé en compartir esto con todos.

Actualización : si hubiera leído la publicación del blog de Joel Spolsky: El mínimo absoluto que todo desarrollador de software debe saber absolutamente, positivamente sobre los conjuntos de caracteres y Unicode (¡sin excusas!) , entonces es posible que no haya tenido este problema.

Otros consejos

así es como lo haces con vim:

# vim file.xml
:set nobomb
:wq
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top