A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 侯茂绵 中级黑马   /  2012-7-17 16:41  /  2466 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如何使用C#读取文件 及如何解决中文乱码问题

3 个回复

倒序浏览
我目前的解决方法就是:一查看数据库 二把格式改掉
回复 使用道具 举报
c#读取文件:把读取的文本文件,用一个richTextBox组件显示出来。要读取文本文件,必须使用到"StreamReader"类,这个类是由名字空间"System.IO"中定义的。通过"StreamReader"类的"ReadLine ( )"方法,就可以读取打开数据流当前行的数据了。下面代码实现的功能就是读取"C:\file.txt"并在richTextBox1组件中显示出来:
  FileStream fs = new FileStream ( "C:\\file.txt"   , FileMode.Open , FileAccess.Read ) ;
    StreamReader m_streamReader = new StreamReader ( fs ) ;
  //使用StreamReader类来读取文件
  m_streamReader.BaseStream.Seek ( 0 , SeekOrigin.Begin ) ;
    // 从数据流中读取每一行,直到文件的最后一行,并在richTextBox1中显示出内容
    this.richTextBox1.Text = "" ;
    string strLine = m_streamReader.ReadLine ( ) ;
    while ( strLine != null )
    {
        this.richTextBox1.Text += strLine + "\n" ;
        strLine = m_streamReader.ReadLine ( ) ;
    }
    //关闭此StreamReader对象
    m_streamReader.Close ( ) ;   

当我们在使用StreamReader 的时候,
按以下代码编写,都会出现乱码,原因是,必须使用 GB2312 的编码方式读取中文字符才不会出错。// 不过现在基本上GBK编码,下面只是演示
StreamReader reader = new StreamReader(txtUrl);
StreamReader reader = new StreamReader(txtUrl, Encoding.UTF-8);
正确写法是:
StreamReader reader = new StreamReader(txtUrl, Encoding.GetEncoding("gb2312"));
回复 使用道具 举报
File或FileStream读写文件时,注意编码的问题,如果编码格式与文本编码格式不一致时会导致乱码,对写文件时给出文件的编码格式,使格式一致
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马