我做了个记事本  当我打开用我自己做的记事本保存的txt文件,显示正常.
但是我打开其他不是用我自己做的记事本保存的txt文件,就会出现乱码.
帮我改改   打开的代码~
private StreamReader sr;
private string BC=null;
private void menuItem10_Click(object sender, System.EventArgs e)
{
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
        BC = openFileDialog1.FileName;
        sr = new StreamReader(BC);
        textBox1.Text = sr.ReadToEnd().ToString();
        sr.Close();
    }       
}

解决方案 »

  1.   

    换个Encoding试试.比如:sr = new StreamReader(BC,Encoding.UTF8);
      

  2.   

    .NET自带的Encoding有:   Encoding  u7    = Encoding.UTF7;
          Encoding  u8    = Encoding.UTF8;
          Encoding  u16LE = Encoding.Unicode;
          Encoding  u16BE = Encoding.BigEndianUnicode;
          Encoding  u32   = Encoding.UTF32;
      

  3.   

    sr = new StreamReader(BC,System.Text.Encoding.GetEncoding("GB18030"));
      

  4.   

    sr = new StreamReader(BC,Encoding.Default);试试
      

  5.   

    System.IO.StreamReader sr = new System.IO.StreamReader(BC,Encoding.Default);Default 即可...
      

  6.   

    Encoding.Default 属性,获取系统的当前 ANSI 代码页的编码...
      

  7.   

    amandag(高歌) ( ) 信誉:100    Blog   加为好友  2007-07-07 17:37:45  得分: 0  
    sr = new StreamReader(BC,System.Text.Encoding.GetEncoding("GB18030"));
    _____________________________________________________________________哈哈,过生日还不休息,跑上来抢分....
      

  8.   

    但是这样改我自己保存的文件就要变乱码      想个好点的办法啊?  能不能直接把TextBox使用的编码和外部的统一嘛?
      

  9.   

    private StreamReader sr;
    private string BC=null;
    private void menuItem10_Click(object sender, System.EventArgs e)
    {
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            BC = openFileDialog1.FileName;
            StreamReader sr= new StreamReader(@BC, System.Text.Encoding.UTF8);
            textBox1.Text = sr.ReadToEnd();
            sr.Close();
        }       
    }