关于生成静态页面乱码的问题?

twtetgso 2005-04-11 10:30:32
我用asp.net作新闻系统来生成静态页面,模板是一处outline.html文件,现在能生成静态页面,但有个问题是我模板outline.html中原来是汉字的地方,象联系方式等,这些是固定的手写的,生成静态页面后,就变成乱码了,但模板中要替换的地方,比如标题,内容等是从数据库中读取的,这部分生成静态页面后就没有问题,请问是怎么回事?

我设置了web.config文件
<globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/>

模板文件outline.html中也加了
<META http-equiv=Content-Type content="text/html; charset=gb2312">
并且在cs文件中加上了
StreamWriter sw=new StreamWriter(Server.MapPath( strDir + "/" + strID +".htm"),false,System.Text.Encoding.Default)

但均不能解决问题
...全文
467 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
twtetgso 2005-04-11
  • 打赏
  • 举报
回复
谢谢楼上各位的回答

我用了StreamReader和StreamWriter,原来只给StreamWriter加了字符集,将StreamReader也加上就OK了
freelyl 2005-04-11
  • 打赏
  • 举报
回复
还有你有没用StreamReader?如果有,也加字符集上去试试。
gzliuxi 2005-04-11
  • 打赏
  • 举报
回复
protected void LogEvent(string errMsg)
{
string[] newContent = new string[3]; //定义和html标记数目一致的数组
StringBuilder strhtml = new StringBuilder();
try
{
//创建StreamReader对象
using (StreamReader sr = new StreamReader(System.Web.HttpContext.Current.Server.MapPath("/Master/LogManager/log/template.html")))
{
String oneline;
//读取指定的HTML文件模板
while ((oneline = sr.ReadLine()) != null)
{
strhtml.Append(oneline);
}
sr.Close();
}
}
catch(Exception err)
{
//输出异常信息
Response.Write(err.ToString());
}
//为标记数组赋值
newContent[0] = DateTime.Now.ToString("yyyyMMddhhmmss")+"出错记录";//标题
newContent[1] = "出错时间:"+DateTime.Now.ToString();//出错时间
newContent[2] = errMsg;//主要内容

//根据上面新的内容生成html文件
try
{
//指定要生成的HTML文件
string fname = System.Web.HttpContext.Current.Server.MapPath("/Master/LogManager/log/") +"\\" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".aspx";
//替换html模版文件里的标记为新的内容
for(int i=0;i < 3;i++)
{
strhtml.Replace("$htmlkey["+i+"]",newContent[i]);
}
//创建文件信息对象
FileInfo finfo = new FileInfo(fname);
//以打开或者写入的形式创建文件流
using(FileStream fs = finfo.OpenWrite())
{
//根据上面创建的文件流创建写数据流
StreamWriter sw = new StreamWriter(fs,System.Text.Encoding.GetEncoding("GB2312"));
//把新的内容写到创建的HTML页面中
sw.WriteLine(strhtml);
sw.Flush();
sw.Close();
}
//设置超级链接的属性

}
catch(Exception err)
{
Response.Write (err.ToString());
}

}


freelyl 2005-04-11
  • 打赏
  • 举报
回复
StreamWriter sw=new StreamWriter(Server.MapPath( strDir + "/" + strID +".htm"),false,System.Text.UnicodeEncoding.GetEncoding("GB2312"))

这样呢?

62,074

社区成员

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

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

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

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