首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

VB.NET WinForm 写下TXT文件后,再读取时是乱码

2013-03-06 
VB.NET WinForm 写入TXT文件后,再读取时是乱码我读取txt文件的时候是这样读的,Private Sub readtxt_Load(B

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);


...

热点排行