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

时间:2011-07-26 05:21:45

标签: windows vb.net encoding scite

如果我们不提及解码将使用什么解码?

我认为不是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 个答案:

答案 0 :(得分:3)

查看here,“此方法会尝试根据字节顺序标记的存在自动检测文件的编码。编码格式为UTF-8和UTF-32(big-endian和little-endian)可以被发现。“

答案 1 :(得分:2)

另见http://msdn.microsoft.com/en-us/library/ms143375(v=vs.110).aspx 此方法使用UTF-8编码,没有字节顺序标记(BOM)