Tengo un problema con StreamWriter y Byte Order Marks. La documentación parece indicar que la codificación Encoding.UTF8 tiene marcas de orden de bytes habilitadas, pero cuando se escriben algunos, algunos tienen las marcas y otros no.Marcas de orden de bytes StreamWriter y UTF-8
estoy creando el escritor corriente de la siguiente manera:
this.Writer = new StreamWriter(this.Stream , System.Text.Encoding.UTF8);
¿Alguna idea sobre sería apreciado lo que podría estar sucediendo.
Tenga en cuenta que, aunque está técnicamente permitido en UTF-8, UnMode no requiere ni recomienda una lista de materiales (véase [ref] (http://www.unicode.org/versions/Unicode5.0.0/ch02.pdf).)). Por un lado, es inútil (a diferencia de, por ejemplo, UTF-16): el estándar especifica el orden de bytes UTF-8. Por otro lado, puede arruinar el procesamiento de texto. Por ejemplo, muchos analizadores XML se ahogarán si hay caracteres antes del prólogo XML. –
¿Estás seguro de que estás especificando UTF8? Porque si no lo especifica, aún escribirá un UTF8, pero sin la BOM – xanatos
de Unicode Standard 5.0: * El estándar Unicode también especifica el uso de una marca de orden de bytes inicial (BOM) para diferenciar explícitamente big- datos endian o little endian en algunos de los esquemas de codificación Unicode. * –