VB Streamwriter设置为ISO-8859-1但文件获得UTF8-Without Bom编码

时间:2015-03-06 07:54:48

标签: .net vb.net encoding text-files streamwriter

我有一个问题,我设置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

1 个答案:

答案 0 :(得分:1)

您必须将编码传递给读者和作者的构造函数。文件本身不具有编码编码。 它们只是一个字节集合。

选择编码,说出你想要对这些字节放置什么解释。您在未指定编码的情况下打开了StreamReader,因此默认为UTF-8。