2011-07-26 17 views
7

si no mencionamos la decodificación con qué decodificación van a usar?¿Cuál es la codificación predeterminada para System.IO.File.ReadAllText

No creo que sea System.Text.Encoding.Default. Las cosas funcionan bien si EXPLICITAMENTE pongo System.Text.Encoding.Default pero las cosas van mal cuando vivo vacío.

Así que esto no funciona bien

Dim b = System.IO.File.ReadAllText("test.txt") 
System.IO.File.WriteAllText("test4.txt", b) 

pero esto funciona bien

Dim b = System.IO.File.ReadAllText("test.txt", System.Text.Encoding.Default) 
System.IO.File.WriteAllText("test4.txt", b, System.Text.Encoding.Default) 

Si no se especifica la codificación será VB.NET tratar de averiguar la codificación del archivo de texto?

¿Qué es también System.Text.Encoding.Default?

Es el sistema predeterminado. ¿Cuál es mi sistema predeterminado y cómo puedo cambiarlo?

¿Cómo sé la codificación utilizada en un archivo de texto?

Si creo un nuevo archivo de texto y lo abro con scite, veo que la codificación es propiedad de la página de códigos. ¿Qué es la propiedad de la página de códigos?

Respuesta

3

Mirar here, "Este método intenta detectar automáticamente la codificación de un archivo en función de la presencia de marcas de orden de bytes. Se pueden detectar formatos de codificación UTF-8 y UTF-32 (tanto big-endian como little-endian) "

+0

Es este el mismo con encoding.default? –

+1

No, esto usa la página de códigos ansi actual del sistema operativo. Mira aquí: http://msdn.microsoft.com/en-us/library/system.text.encoding.default.aspx –

+0

El valor predeterminado parece ser viejo y no realmente usado más/viable. Eche un vistazo a http://en.wikipedia.org/wiki/Windows_code_page –

Cuestiones relacionadas