我有一个问题,我设置streawriter写ISO-8853-1但该文件获得utf8编码。请参阅以下代码:
当声明str我将它设置为iso-8853-1时,当我检查输出文件编码时,我得到UTF8-没有bom。
Imports System.Text
Imports System.IO
Module Module1
Sub Main()
Using str = New StreamWriter("C:\blabla.txt", False, encoding.GetEncoding("ISO-8859-1"))
str.Write("23124124AÖ")
Dim encoding = str.Encoding
str.Close()
End Using
Dim currentEncoding = GetFileEncoding("C:\blabla.txt")
End Sub
Public Function GetFileEncoding(filePath As String) As Encoding
Using sr As StreamReader = New StreamReader(filePath, True)
sr.Read()
Return sr.CurrentEncoding
End Using
End Function
End Module
答案 0 :(得分:1)
您必须将编码传递给读者和作者的构造函数。文件本身不具有编码编码。 它们只是一个字节集合。
你,选择编码,说出你想要对这些字节放置什么解释。您在未指定编码的情况下打开了StreamReader
,因此默认为UTF-8。