请看下面一段代码:
string scroll = Request.PhysicalApplicationPath
scroll = scroll + "selfsite\\" + Session["mmbpass"].ToString();
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(scroll);
if (di.Exists == false)
{
di.Create();
}

string cmpTag = Server.HtmlEncode(Request.Form["cmptag"].Trim());
cmpTag = cmpTag.Replace("'","’");

string cmpJj = Server.HtmlEncode(Request.Form["cmpinfo"]);
cmpJj = cmpJj.Replace("'","’");
cmpJj = cmpJj.Replace(" "," ");
cmpJj = cmpJj.Replace("\n","<br>");

string agoFile = Request.PhysicalApplicationPath + "selfsite\\";
switch (Request.Form["board"].ToString())
{
case "b1":
agoFile += "b1\\default.aspx";
break;
case "b2":
agoFile += "b2\\default.aspx";
break;
}
string fileStr = "";
FileInfo agoFi = new FileInfo(agoFile);
using (FileStream newFs = agoFi.OpenRead())
{
byte[] b = new byte[4000];
System.Text.Encoding be = System.Text.Encoding.Default;

while (newFs.Read(b,0,b.Length) > 0)
{
fileStr += be.GetString(b).ToString().Trim();
}
}
fileStr = fileStr.Replace("HeadTitle",cmpTag);
cmpTag = fileStr.Replace("cmpname",cmpTag);
string createFileName = scroll + "\\index.htm";
StreamWriter wStr = File.CreateText(createFileName);
wStr.Write(cmpTag.Replace("cmpinfo",cmpJj));
wStr.Close();为什么如果有中文输入,输出到浏览器上是乱码(用DW看也是乱码),而在记事本里看却没有问题?

解决方案 »

  1.   

    比较简单的方法;
    在webconfig里面改为    
    <globalization 
              requestEncoding="gb2312" 
              responseEncoding="gb2312" 
    />
      

  2.   

    web.config我刚写网站的时候就改了。用UTF-8输出来后是??
      

  3.   

    trySystem.Text.Encoding be = System.Text.Encoding.Default;--->System.Text.Encoding be = System.Text.Encoding.GetEncoding("GB2312");
      

  4.   

    requestEncoding="gb2312" 
              responseEncoding="gb2312" 
      

  5.   

    http://blog.csdn.net/goody9807/articles/138871.aspx
      

  6.   

    加入codePage="936"试试
    例如
    <%@ Page language="c#" Codebehind="RoleListUI.aspx.cs" AutoEventWireup="false" Inherits="Project.UI.Role.RoleListUI"  codePage="936"%>
      

  7.   

    C:\WINNT\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config里的UTF-8也都改为gb2312一共三个地方
      

  8.   

    修改以后,传过去才是乱码不管你是不是看见的乱码,你都可以一样通过Request.QueryString取值
    而且值是对的,你不用理会