日期:2014-05-18  浏览次数:20436 次

asp.net需要配置"编码格式"么
一直用asp.net,都没有出现汉字乱码的情况,以为ms已经给我们解决了这个问题。
但今天用response.writefile()时出现了乱码。代码如下:
前台:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
  <title>无标题页</title>
</head>
<body>
  <form id="form1" runat="server">
  <div>
  随便写几句!
  </div>
  </form>
</body>
</html>

后台:

public partial class _Default : System.Web.UI.Page 
{
  protected void Page_Load(object sender, EventArgs e)
  {
  Response.WriteFile(Request.PhysicalApplicationPath+"file.txt");
  }

}

file.txt里面就是:
file记事本内容

结果要么随便写几句!,要么file记事本内容就是乱码。

请高手指点

------解决方案--------------------
要不你在response.writefile前指定输出编码,要你不你web.config里配置一下全局编码
------解决方案--------------------
试试StreamWriter的方法 要求命名空间system.IO
 SeveTemplate("你要保存的文件名a.html","要写入的内容");
/// <summary>
/// 保存文件内容
/// </summary>
public void SeveTemplate(string FileName, string strTemp)
{
string filePath = HttpContext.Current.Server.MapPath(FileName);
WriterFile(filePath, strTemp);
}

/// <summary>
/// 文件写入
/// </summary>
public void WriterFile(string FilePath, string FileString, Encoding encoding)
{
using (StreamWriter writer = new StreamWriter(FilePath, false, encoding))
{
writer.Write(FileString);
writer.Flush();
writer.Close();
}
}
------解决方案--------------------
<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>
把上面这句加到web.config里就行了
------解决方案--------------------
全部都要统一编码格式.
------解决方案--------------------
<globalization requestEncoding ="gb2312" responseEncoding ="gb2312"/>这个节点是加在
<system.web>
放在这个节点里的
</system.web>

------解决方案--------------------
这个页面的<head>里设置一下:

HTML code

<meta http-equiv="Content-Language" content="zh-CN">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

------解决方案--------------------
<system.web>配置节里面加上<globalization requestEncoding ="gb2312" responseEncoding ="gb2312"/>即可