VB.NET WinForm 写入TXT文件后,再读取时是乱码
我读取txt文件的时候是这样读的,
Private Sub readtxt_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim nfilename1 As String = “D:\1.txt"
Dim fs2 As New FileStream(nfilename1, FileMode.Open)
'Dim sr As New StreamReader(fs2)
Dim sr As New StreamReader(fs2, System.Text.Encoding.Default) '读取流,为默认格式,否则可能出现无法识别中文 关键就这一句
sr.BaseStream.Seek(0, SeekOrigin.Begin)
' StreamReader?NT?SJKL-???+??S
Me.TextBox1.Multiline = True
Me.TextBox1.Text = sr.ReadToEnd()
fs2.Close()
End Sub
可以正常读取出中文.
写入代码如下:
Private Sub readtxt_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
'--退出时自动保存修改后的值
Dim SaveFileName As String
SaveFileName = "D:\1.txt"
Dim myStreamWriter As StreamWriter
myStreamWriter = File.CreateText(SaveFileName)
Dim MyOutput As String
While MyOutput Is Nothing
MyOutput = Me.TextBox1.Text
myStreamWriter.WriteLine(MyOutput)
Me.TextBox1.Text = Me.TextBox1.Text.Remove(0, MyOutput.Length)
End While
myStreamWriter.Close()
End Sub
保存时,再读出来时是乱码? 如何解决呢? 请哪位高手帮一下,谢谢!
[解决办法]
FileStream stream = new FileStream(SaveFileName, FileMode.OpenOrCreate);
using (StreamWriter writer = new StreamWriter(fs, Encoding.Default))
{
myStreamWriter.WriteLine(MyOutput);//你的操作
}
[解决办法]
写入和读取时的编码不正确吧
[解决办法]
Dim SaveFileName As String
SaveFileName = "D:\1.txt"
Dim myStreamWriter As StreamWriter
myStreamWriter = new System.IO.StreamWriter(SaveFileName, false, System.Text.Encoding.Default);
...