黑马程序员技术交流社区

标题: 读取及乱码问题 [打印本页]

作者: 侯茂绵    时间: 2012-7-17 16:41
标题: 读取及乱码问题
如何使用C#读取文件 及如何解决中文乱码问题
作者: 樊占江    时间: 2012-8-5 00:12
我目前的解决方法就是:一查看数据库 二把格式改掉
作者: 冯华亮    时间: 2012-8-7 16:40
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"));
作者: 李 玉林    时间: 2012-8-27 20:55
File或FileStream读写文件时,注意编码的问题,如果编码格式与文本编码格式不一致时会导致乱码,对写文件时给出文件的编码格式,使格式一致




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