我在使用C#编写读写文件的时候,发现读取出来的内容里只要是中文的部分都成了"�����"的了而数字和字母却是正常
请问如何解决这样的问题,请高手指点.
我读取的文件是MARC数据格式(*.iso),我用计事本打开这个文件,都能正常显示中文,为什么我用C#编写的读取程序读出来的内容不能正常显示中文?

解决方案 »

  1.   

    你的C#默认应该是设成了UTF-8了。
      

  2.   

    谢谢楼上的朋友的回答,不过我昨天晚上在床上想了半个小时,嘿嘿终于搞定了
    我的解决办法是StreamReader sr = new StreamReader(rfilename, System.Text.Encoding.Default);
    加了一个System.Text.Encoding.Default参数,中文显示就正常了!哈哈哈哈哈
      

  3.   

    那么楼主是否清楚System.Text.Encoding.Default的意义以及作用呢如果这里需要替换为确定的编码又该如何做呢
    参考下MSDN的说明吧,另外把
    System.Text.Encoding.Default
    替换为
    Encoding.GetEncoding("gb2312")
    看下效果,这会有助于你理解
      

  4.   

    在传值时候:   Server.UrlEncode(汉语部分);如:Response.Redirect("abc.aspx?Name=" + Server.UrlEncode(Name));这样传过去的汉语形式的 Name 就不是乱码了
      

  5.   

    简体中文一般采用的格式为GB2312的,而C#默认的是UTF-8的,不光在读文件的时候需要注意,在写文件的时候也应该注意一下你的编码方式
      

  6.   

    4楼的大哥,你说的很对,刚开始用System.Text.Encoding.Default的时候,汉字能正常显示,但有个问题就是汉字被识别为单字节了,后来开始研究怎么弄成双字节,可是弄来弄去,使用System.Text.Encoding.Default都不能正常显示汉字了,郁闷中!
      

  7.   

    StreamReader的构造器还有别的类型,好好看看,有自动识别编码的一个。