我初学C#,想要尝试着写一个记事本,但是无奈写的记事本有一个很奇怪的错误:用这个程序写的文本保存后,再用这个程序打开就会是乱码,而打开用系统带的记事本写的文本不会出现乱码,用我写的记事本保存的文件用记事本打开也不会出现乱码,真的不知道怎么回事了,真心求教,这是我的代码:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace C记事本测试1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
} private void 新建NToolStripMenuItem_Click(object sender, EventArgs e)
{
textBox1.Text = "";
openFileDialog1.FileName = "";
saveFileDialog1.FileName = "";
} private void 打开OToolStripMenuItem_Click(object sender, EventArgs e)
{
openFileDialog1.Title = "打开文本";
openFileDialog1.Filter = "文本文件(*.txt)|*.txt|批处理文件(*.bat)|*.bat|脚本文件(*.vbs)|*.vbs";
openFileDialog1.FilterIndex = 1;
openFileDialog1.InitialDirectory = "桌面";
openFileDialog1.ShowReadOnly = true;
openFileDialog1.ReadOnlyChecked = false;
openFileDialog1.FileName = "";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
StreamReader Sr = new StreamReader
(openFileDialog1.FileName, Encoding.Default);
textBox1.Text = Sr.ReadToEnd();
Sr.Close();
}
} private void 保存SToolStripMenuItem_Click(object sender, EventArgs e)
{
saveFileDialog1.Title = "保存文本";
saveFileDialog1.Filter = "文本文件(*.txt)|*.txt|批处理文件(*.bat)|*.bat|脚本文件(*.vbs)|*.vbs";
saveFileDialog1.InitialDirectory = "桌面";
saveFileDialog1.FileName = "";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
StreamWriter Sw = new StreamWriter(saveFileDialog1.FileName);
Sw.Write(textBox1.Text);
Sw.Close();
}
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace C记事本测试1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
} private void 新建NToolStripMenuItem_Click(object sender, EventArgs e)
{
textBox1.Text = "";
openFileDialog1.FileName = "";
saveFileDialog1.FileName = "";
} private void 打开OToolStripMenuItem_Click(object sender, EventArgs e)
{
openFileDialog1.Title = "打开文本";
openFileDialog1.Filter = "文本文件(*.txt)|*.txt|批处理文件(*.bat)|*.bat|脚本文件(*.vbs)|*.vbs";
openFileDialog1.FilterIndex = 1;
openFileDialog1.InitialDirectory = "桌面";
openFileDialog1.ShowReadOnly = true;
openFileDialog1.ReadOnlyChecked = false;
openFileDialog1.FileName = "";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
StreamReader Sr = new StreamReader
(openFileDialog1.FileName, Encoding.Default);
textBox1.Text = Sr.ReadToEnd();
Sr.Close();
}
} private void 保存SToolStripMenuItem_Click(object sender, EventArgs e)
{
saveFileDialog1.Title = "保存文本";
saveFileDialog1.Filter = "文本文件(*.txt)|*.txt|批处理文件(*.bat)|*.bat|脚本文件(*.vbs)|*.vbs";
saveFileDialog1.InitialDirectory = "桌面";
saveFileDialog1.FileName = "";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
StreamWriter Sw = new StreamWriter(saveFileDialog1.FileName);
Sw.Write(textBox1.Text);
Sw.Close();
}
}
}
}
private void 保存SToolStripMenuItem_Click(object sender, EventArgs e)
{
saveFileDialog1.Title = "保存文本";
saveFileDialog1.Filter = "文本文件(*.txt)|*.txt|批处理文件(*.bat)|*.bat|脚本文件(*.vbs)|*.vbs";
saveFileDialog1.InitialDirectory = "桌面";
saveFileDialog1.FileName = "";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
StreamWriter Sw = new StreamWriter(saveFileDialog1.FileName, true, Encoding.Default);
Sw.Write(textBox1.Text);
Sw.Close();
}
}
private void 保存SToolStripMenuItem_Click(object sender, EventArgs e)
{
saveFileDialog1.Title = "保存文本";
saveFileDialog1.Filter = "文本文件(*.txt)|*.txt|批处理文件(*.bat)|*.bat|脚本文件(*.vbs)|*.vbs";
saveFileDialog1.InitialDirectory = "桌面";
saveFileDialog1.FileName = "";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
StreamWriter Sw = new StreamWriter(saveFileDialog1.FileName, true, Encoding.Default);
Sw.Write(textBox1.Text);
Sw.Close();
}
}
这句你没有指定编码。