急!!读取Txt文档乱码问题

yutian_31 2011-06-27 06:13:34
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文档的内容,

文档格式已经设置了,为什么 读出来的还是乱码?
哪个地方 有问题?
...全文
455 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yutian_31 2011-06-27
  • 打赏
  • 举报
回复
对了 我是这么嵌套的,<iframe id="ifr" name="ifr" width="100%" height="600px" src=“ViewTXT.aspx"></iframe>
yutian_31 2011-06-27
  • 打赏
  • 举报
回复
UTF-8也试过了 都不行,
我刚 用IE直接打开txt文档没问题,用上面的方法打开 就不行
在路上20130607 2011-06-27
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wxr0323 的回复:]

Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
[/Quote]

子夜大神 被推荐mvp了

编码的话 看看乱码是什么样的 有的是根本没识别的 有的是 转来转去 转乱的 具体是那种 要看乱码是什么样的 做java的时候 被乱码恶心坏了
子夜__ 2011-06-27
  • 打赏
  • 举报
回复
Response.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
yutian_31 2011-06-27
  • 打赏
  • 举报
回复
不行
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();
dalmeeme 2011-06-27
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yutian_31 的回复:]
里面 已经有设置啊,设置成默认 utf-8 都试过了 还是有乱码,但在出现乱码后 在IE中选择简体gb2312 就可以正常显示
[/Quote]
只写我那2句,其他都不写,行吗?
yutian_31 2011-06-27
  • 打赏
  • 举报
回复
里面 已经有设置啊,设置成默认 utf-8 都试过了 还是有乱码,但在出现乱码后 在IE中选择简体gb2312 就可以正常显示
dalmeeme 2011-06-27
  • 打赏
  • 举报
回复
Response.ContentEncoding = Encoding.GetEncoding("gb2312");
Response.WriteFile(Server.MapPath("~/哪几类人最容易被提拔重用?.txt"));

一般记事本中创建的txt默认是gb2312的。直接这样写就行了。
暖枫无敌 2011-06-27
  • 打赏
  • 举报
回复
c# 中StreamReader读入中文乱码问题,其原因:编码不认识,原来自从Windows 2000之后的操作系统在文件处理时默认编码采用Unicode,所以.Net 的文件默认编码也是Unicode。除非另外指定,StreamReader 的默认编码为 Unicode,而不是当前系统的 ANSI 代码页。但是文档大部分还是以ANSI编码储存,中文文本使用的是gb2312,所以才造成中文乱码的状况,也就是说在读取文本的时候要指定编码格式。


Response.ContentEncoding = System.Text.Encoding.Default;
windy19871011 2011-06-27
  • 打赏
  • 举报
回复
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();
}
格桑花 2011-06-27
  • 打赏
  • 举报
回复
你换下word 的版本试试,好像不同的版本编码方式不一样
蝶恋花雨 2011-06-27
  • 打赏
  • 举报
回复
编码下
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 参考

yutian_31 2011-06-27
  • 打赏
  • 举报
回复
不行,比较郁闷
ruanwei1987 2011-06-27
  • 打赏
  • 举报
回复
gb2312 换成 utf-8 试试

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧