Dim sr1 As New StreamReader(Save_Path & "\" & File_Name, System.Text.Encoding.GetEncoding("gb2312"))
Dim sr2 As New StreamReader(Save_Path & "\" & File_Name, True)这两种读取模式到底区别在哪里呢?
文件中都包含中文,有时我用上面那个出现乱码,改成下面这种模式就可以,但调试的时候偶尔还是会乱码,再改回另一种模式又正常了
还有一种情况,写入的文件用记事本打开看到是正常中文,但写字板打开看到的就都是乱码。困惑中……

解决方案 »

  1.   

    换了台机器试了,发现还是有问题
    第一步:用Dim sr1 As New StreamReader(Save_Path & "\" & File_Name, System.Text.Encoding.GetEncoding("gb2312")) 把文件内容读入RichTextBox1,能正常显示
    第二步:把RichTextBox里的内容以 Dim xsyb As New FileStream(Save_Path & "\" & File_Name, FileMode.Create)方式写回文件File_Name
    此时用记事本打开File_Name,看到是正常中文,但是以写字板打开则看到的都是乱码。然后再执行第一步,有时(并不是每次)RichTextBox里读入的内容就是乱码,此时用Dim sr2 As New StreamReader(Save_Path & "\" & File_Name, True) 这种模式读取又能正常显示为中文。
      

  2.   

    这些乱码就是UTF-8编码的,你在保存时指定好编码的话应该就不会出现这种问题
      

  3.   

    嗯,在保存的时候加了这个
    Dim sr As New StreamWriter(fs, System.Text.Encoding.GetEncoding("gb2312"))
    确实就对了,之前一直用的默认。