1
以下是在VB.Net 2012中向文件写入文本的两种方法。第一种方法将每个文件的前三个不可打印字符前置:第二个按预期工作,不添加三个字符。 objDataReader是一个OleDB数据记录器。FileSystem.WriteAllText添加不可打印的字符
任何想法为什么?
格雷格
My.Computer.FileSystem.WriteAllText(lblLocation.Text & "\" &
objDataReader("MessageControlId").ToString & ".txt", objDataReader("MsgContents").ToString, False)
Using outfile As New StreamWriter(lblLocation.Text & "\" & objDataReader("MessageControlId").ToString & ".txt")
outfile.Write(objDataReader("MsgContents").ToString)
End Using
它是BOM,它说,该文件的其余部分包含UTF-8编码的文本。 BOM是一件好事,这是完全正常的,任何现代文本编辑器都知道如何处理它。 VS肯定会。不幸的是,StreamWriter使用utf-8,但默认情况下不写BOM。你必须添加UTF8Encoding作为构造函数的第二个参数才能使它做正确的事情。 –