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

asp.net生成html文件乱码
...
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();
                        }


-------------------
原文件内容:
<script   language= "JavaScript "> <!--
  var   dayNames   =   new   Array( "星期日 ", "星期一 ", "星期二 ", "星期三 ", "星期四 ", "星期五 ", "星期六 ");
Stamp   =   new   Date();
document.write( " "   +   Stamp.getYear()   +   "年 "+(Stamp.getMonth()   +   1)   + "月 "+Stamp.getDate()+   "日 "+   "           "   +   dayNames[Stamp.getDay()]   + "                 ");
//-->
</script>
生产的内容
  <script   language= "JavaScript "> <!--   var   dayNames   =   new   Array( "?????? ", "????? ", "????? ", "?????? ", "?????? ", "?????? ", "?????? ");Stamp   =   new   Date();document.write( " "   +   Stamp.getYear()   +   "?? "+(Stamp.getMonth()   +   1)   + "?? "+Stamp.getDate()+   "?? "+   "           "   +   dayNames[Stamp.getDay()]   + "                 ");//-->         </script>  

原来的html很整齐,然而asp.net处理生成的html也不整齐,最好能在符号 "; "处换行
结果肯定出不来
thanks

------解决方案--------------------
一行行读并且一行行写,而且写的时候用unicode试下
今天上午我在写自动生成一个js文件的时候也碰到了你说的两个问题,后来就是用我上面说的方法解决的
------解决方案--------------------
我读的时候在每行后面加了个标记,做了些字符替换后再把一行行分隔开来重新按行写入新文件
------解决方案--------------------
你读模板的时候也应该加上编码