FileInfo fileInfo = new FileInfo(filePath);
                    Response.Clear();
                    Response.ClearContent();
                    Response.ClearHeaders();
                    Response.AddHeader("Content-Disposition", "inline;filename=" + filename);
                    Response.AddHeader("Content-Length", fileInfo.Length.ToString());
                    Response.AddHeader("Content-Transfer-Encoding", "binary");
                    Response.ContentType = "application/octet-stream";
                    Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
                    Response.WriteFile(fileInfo.FullName);
                    Response.Flush();
                    Response.End();功能 IE中显示txt文档的内容,文档格式已经设置了,为什么 读出来的还是乱码?
哪个地方 有问题?

解决方案 »

  1.   

    gb2312  换成 utf-8 试试 
      

  2.   

    编码下
    System.Text.Encoding.GetEncoding("gb2312")
    File.ReadAllLines(@"C:\abc.html", System.Text.Encoding.Default); 
    没有设置第二个参数System.Text.Encoding.Default
    http://technet.microsoft.com/zh-cn/subscriptions/bsy4fhsa.aspx 参考 
     
      

  3.   

    你换下word 的版本试试,好像不同的版本编码方式不一样
      

  4.   

    string path="你的物理路径文件名";
     FileStream stream = new FileStream(path, FileMode.Open, FileAccess.ReadWrite);
                byte[] buffer = new byte[stream.Length];
                try
                {
                    stream.Read(buffer, 0, Convert.ToInt32(stream.Length));
                    string contentType = "application/octet-stream";
                    string strName = Path.GetFileName(path);
                    string ext = Path.GetExtension(strName);
                    Microsoft.Win32.RegistryKey registryKey =
                    Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(ext);
                    if (registryKey != null && registryKey.GetValue("Content Type") != null)
                        contentType = registryKey.GetValue("Content Type").ToString();
                    HttpResponse response = this.Response;
                    response.ContentType = contentType;
                    response.AppendHeader("Content-Disposition", String.Concat("attachment;filename=", HttpUtility.UrlEncode(strName)));
                    response.BinaryWrite(buffer);
                    response.End();
                }
                catch
                {            }
                finally
                {
                    stream.Dispose();
                }
      

  5.   

    c# 中StreamReader读入中文乱码问题,其原因:编码不认识,原来自从Windows 2000之后的操作系统在文件处理时默认编码采用Unicode,所以.Net 的文件默认编码也是Unicode。除非另外指定,StreamReader 的默认编码为 Unicode,而不是当前系统的 ANSI 代码页。但是文档大部分还是以ANSI编码储存,中文文本使用的是gb2312,所以才造成中文乱码的状况,也就是说在读取文本的时候要指定编码格式。
    Response.ContentEncoding = System.Text.Encoding.Default;
      

  6.   

    Response.ContentEncoding = Encoding.GetEncoding("gb2312");
    Response.WriteFile(Server.MapPath("~/哪几类人最容易被提拔重用?.txt"));一般记事本中创建的txt默认是gb2312的。直接这样写就行了。
      

  7.   

    里面 已经有设置啊,设置成默认 utf-8 都试过了  还是有乱码,但在出现乱码后 在IE中选择简体gb2312 就可以正常显示
      

  8.   

    不行
     FileInfo fileInfo = new FileInfo(filePath);
                        Response.Clear();
                        Response.ClearContent();
                        Response.ClearHeaders();
                        Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
                         Response.WriteFile(fileInfo.FullName);
                        Response.Flush();
                        Response.End();
      

  9.   

    Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
      

  10.   


    子夜大神  被推荐mvp了编码的话  看看乱码是什么样的  有的是根本没识别的  有的是 转来转去 转乱的 具体是那种 要看乱码是什么样的  做java的时候 被乱码恶心坏了
      

  11.   

    UTF-8也试过了 都不行,
    我刚 用IE直接打开txt文档没问题,用上面的方法打开 就不行
      

  12.   

    对了 我是这么嵌套的,<iframe id="ifr" name="ifr" width="100%" height="600px" src=“ViewTXT.aspx"></iframe>