一道C#程序题!高手请进!!谢谢各位大侠!

我用C#编写了一个记事本程序,其中一个是进行记事本的“打开文件”操作:
附代码:
private void 保存SToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
saveFileDialog1.Filter = "文本文件|*.txt|word文档|*.doc"; //这段代码要在if语句之前添加,否则保存文件格式时会出现无格式状况;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
StreamWriter sw = new StreamWriter(saveFileDialog1.FileName, true,Encoding.GetEncoding("gb2312"));
sw.Write(richTextBox1.Text);
this.Text = saveFileDialog1.FileName;
sw.Close();
richTextBox1.Text = string.Empty;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
但是进行对txt文件进行追加操作时出现以下情况------附图:

请问那几个“小黑框”我编写的时候并没有,但是打开后却出现了,请问如何解决?
再补充下,文档原本应该是这样:

把richTextBox1.Text中的所有\n\n 中间插入一个空格。可以试试。追问

没太懂,麻烦能再详细一点吗?举个例子也行

追答

你把richTextBox1.Text赋值给一个string类型的变量,在那个变量的地方设置断点,看看变量是什么就知道是怎么回事了。

try
{
saveFileDialog1.Filter = "文本文件|*.txt|word文档|*.doc"; //这段代码要在if语句之前添加,否则保存文件格式时会出现无格式状况;
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
StreamWriter sw = new StreamWriter(saveFileDialog1.FileName, true, Encoding.GetEncoding("gb2312"));
for (int i = 0; i < richTextBox1.Lines.Length; i++ )
{
sw.Write(richTextBox1.Lines[i]);
sw.Write("\r\n");
}
this.Text = saveFileDialog1.FileName;
sw.Close();
richTextBox1.Text = string.Empty;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

你试试这个吧,我刚刚改的。
重要的是windows下的换行是\r\n,而你RichTextBox的换行为\n,因为这点,它把每一行发入Lines中。

追问

真的可以!!!!!真心请教这是什么原因造成的呢?

追答

重要的是windows下的换行是\r\n,而你RichTextBox的换行为\n,因为这点,它把每一行发入Lines中。Windows下记事本的换行是\r\n,但是你是看不到这两个字符的,而RichTextBox的换行为\n,这样拿到记事本下看,自然就成了小黑框,一种乱码。下次记得就行了。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-21
应该是乱码,

StreamReader sr = new StreamReader(fileName,Encoding.GetEncoding("gb2312"));
以上介绍C# txt文件

以上介绍C#解决TXT文件乱码问题,希望对你有所帮助。

复制的乱码问题,看能解决不追问

那个不是乱码,这位网友,而是空格?我现在就想把空格都给去掉,不会弄,求解!谢谢

相似回答