System.IO.File.ReadAllText的默认编码是什么?

12
如果我们不提到解码,它们将使用什么解码方式?
我认为不是 System.Text.Encoding.Default。如果我明确地设置为 System.Text.Encoding.Default,则一切都能正常工作,但如果留空则会出现问题。
因此,这种情况并不好。
Dim b = System.IO.File.ReadAllText("test.txt")
System.IO.File.WriteAllText("test4.txt", b)

但这很有效

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

如果我们没有指定编码,VB.NET 是否会尝试从文本文件中确定编码?

System.Text.Encoding.Default 是系统默认编码。我的系统默认编码是什么,我该如何更改它?

如何知道文本文件中使用的编码?

如果我创建一个新的文本文件并使用 Scite 打开它,我会看到编码是代码页属性。代码页属性是什么?

2个回答

4
请看这里,"该方法尝试根据文件中字节序标记的存在自动检测编码方式。能够检测到编码格式为UTF-8和UTF-32(大端和小端)的文件。"

1
这和 encoding.default 是一样的吗? - Anonymous White
2
不,这使用操作系统当前的 ANSI 代码页。在这里看看:http://msdn.microsoft.com/en-us/library/system.text.encoding.default.aspx - TBohnen.jnr
默认似乎已经老旧,不再被广泛使用或可行。请参阅http://en.wikipedia.org/wiki/Windows_code_page。 - TBohnen.jnr

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接