FileStream fs=new FileStream("d:\text.txt",Create);
StreamReader sr=new StreamReader(fs);
我用上面的方法读取文本时,发现只能读字母,不能读汉字,请大家指教,告诉怎么用流读汉字。

解决方案 »

  1.   

    FileStream fs=new FileStream("d:\text.txt",Create); LZ不对吧,这是创建文件吧...
      

  2.   

    这是编码问题
    还是用fs读到一个Byte数组里
    然后用一个Encording.Default.GetString(Byte数组)方法返回一个string
    我这台机没有环境
    也没办法写具体的代码
    大致是这样的  你试试
      

  3.   

    在读取数据的时候,加一下编码方式,应该就可以了吧!!
    可以试试!!
    StreamReader sr=new StreamReader(fs,"gb2312"); 
      

  4.   

    FileStream fs=new FileStream("d:\text.txt",Create); 
    StreamReader sr=new StreamReader(fs,System.Text.Enconing.Default); 
    默认情况下是中文的
    也可以用 StreamBinary 这个什么都可以识别
      

  5.   

    StreamReader sr = new StreamReader(new FileStream(fileName, FileMode.Open), System.Text.Encoding.Default);
      

  6.   

    有Bug
    "d:\\text.txt"=@"d:\text.txt"
      

  7.   

    使用重载构造函数,
    public StreamReader(
    string path,
    bool detectEncodingFromByteOrderMarks
    )
    path
    类型:System.String要读取的完整文件路径。 detectEncodingFromByteOrderMarks
    类型:System..Boolean指示是否在文件头查找字节顺序标记。可以尝试下面构造
    StreamReader Reader = new StreamReader("d://BFAMRTP.txt",true);  或者使用一下方式
    StreamReader Reader = new StreamReader("", System.Text.Encoding.Default);通过以上方式一般都能解决,不过如果解决不了,就需要指定具体的编码了,
    关于编码的相关内容,建议参考下面的文章,
    character set,character encoding和xml encoding declaration
    http://blog.csdn.net/hansoft/archive/2005/08/29/467772.aspx