在.NET里的System.IO.File和System.IO.FileInfo里的OpenText和AppenText等几个方法都是使用UTF-8编码操作文件的.这就导致如果操作不是使用UTF-8编码编写的文件时将会出现乱码现象!!! 解决方法就是对文本文件使用字节流操作,即不使用.NET里提供的OpenText和AppenText等几个方法,而是将文本当成二进制文件来操作,并且在操作时使用Encoding的方法进行相应的解码即可.实现代码如下: 打开文本文件: Public Function LoadFile(ByVal FileName As String) as String If FileName= "" Then Return "" End If Try Dim FileReader As FileStream = File.Open(FileName, FileMode.Open) Dim FileByte(FileReader.Length) As Byte FileReader.Read(FileByte, 0, FileReader.Length) ''''转成系统对应的编码字符 Dim MyEncoder As Encoding = Encoding.Default FileReader.Close() FileReader = Nothing Return New String(MyEncoder.GetChars(FileByte)) Catch e As Exception Return "" End Try End Sub
保存文件: Public Sub SaveToFile(ByRef Conten As String, ByVal FileName As String) ''''/*将Conten字符串的内容写入FileName文件 If FileName = "" Then Exit Sub End If Try Dim FileToWrite As FileStream = File.Create(FileName) Dim rByte() As Byte = Encoding.Default.GetBytes(Conten.ToCharArray) FileToWrite.Write(rByte, 0, rByte.Length) FileToWrite.Close() FileToWrite = Nothing Catch e As Exception End Try End Sub