vb.net 用savefiledialog保存的文件是乱码

来源:百度知道 编辑:UC知道 时间:2024/09/21 10:40:46
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim tt As String

SaveFileDialog1.Filter = "text文件|*.txt|rtf文件|*.rtf"
SaveFileDialog1.FilterIndex = 1
SaveFileDialog1.ShowDialog()
tt = SaveFileDialog1.FileName
RichTextBox1.SaveFile(tt)
End Sub

代码如上,如:新年快乐会变成 {\rtf1\ansi\ansicpg936\deff0\deflang1033\deflangfe2052{\fonttbl{\f0\fnil\fcharset134 \'cb\'ce\'cc\'e5;}}
\viewkind4\uc1\pard\lang2052\f0\fs18\'d0\'c2\'c4\'ea\'bf\'ec\'c0\'d6\par
}

没错,RTB的savefile保存下来的是rtf格式文件,你用word或写字板打开就不是乱码了,记事本不行。
用savedfiledialog的filter控制的只是显示哪些类型的文件,而不能控制实际写入的是什么格式。你让他显示的是txt,但其实写入的还是rtf。

要写入纯文本,用savefile方法的另一个重载:
richTextBox1.SaveFile(tt, RichTextBoxStreamType.PlainText)