黑马程序员技术交流社区

标题: 记事本显示出来的是乱码 [打印本页]

作者: 杨伟芬    时间: 2012-4-4 18:10
标题: 记事本显示出来的是乱码
   今天在练习写 记事本,我写了一下的代码,正确的情况下  实现的功能应该和记事本的功能一样,可是我这个代码 运行没有错,为什么显示出来的是乱码   如图所示   

private void nNToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog openDialog1 = new OpenFileDialog();
            openDialog1.Title = "打开";
            openDialog1.Filter = "文本文件|*.txt|所有文件|*.*";    //设置过滤器        
            if (openDialog1.ShowDialog() == DialogResult.OK)
            {
                FileStream fileLiu = new FileStream(openDialog1.FileName,FileMode.Open,FileAccess.Read,FileShare.None);
                //声明一个文件流
                StreamReader readQu = new StreamReader(fileLiu);
                //创建读取器
                txtText.Text = readQu.ReadToEnd();
                //指示读取器(readQu)对文件流(fileLiu)的操作是 读到最后
                readQu.Close();
                fileLiu.Close();
            }
               
      
        }

作者: 曾驰文    时间: 2012-4-4 19:09
   OpenFileDialog openDialog1 = new OpenFileDialog();
            openDialog1.Title = "打开";
            openDialog1.Filter = "文本文件|*.txt|所有文件|*.*";    //设置过滤器
         
            if (openDialog1.ShowDialog() == DialogResult.OK)
            {
                FileStream fileLiu = new FileStream(openDialog1.FileName, FileMode.Open, FileAccess.Read, FileShare.None);
                //声明一个文件流
                StreamReader readQu = new StreamReader(fileLiu,Encoding.Default);//Encoding.Default相应的编码格式
                //创建读取器
            
                textBox1.Text = readQu.ReadToEnd();
        
                //指示读取器(readQu)对文件流(fileLiu)的操作是 读到最后
                readQu.Close();
                fileLiu.Close();
            }

作者: 张恒    时间: 2012-4-4 19:11
乱码出现的原因是你打开文件的编码方式和FIleStream中的读取文件的方法编码方式不同。
你可以调用读取方法带编码参数的重载方法
StreamReader readQu = new StreamReader(fileLiu,Encoding.Default);//设置为默认编码方式




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2