string filename = Request.PhysicalApplicationPath + @"Css\PersonSelectData.js";            StreamWriter sr = File.CreateText(filename);
            try
            {
                sr.WriteLine("var obj=new myobject();obj.value='动态读取的信息,汉字居多!';");            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                sr.Close();
            }
在aspx也没中引用了这个js文件,在运行中发现js代码里面obj.value凡是汉字的都变成了乱码,然后我不动态生成,
自己在js文件写入汉字,发现运行中js代码的汉字都显示正常了,请问那位遇到类似情况,请不吝赐教!再次谢过.声明一下我这样做的目的:
  因为我另外建立了一个js文件用于myobject()的处理过程,我由于myobject()过程的js文件也是引用的所以在后台代码中通过
response.write("<script language='javascript'>var obj=new myobject();</script>");方式老是提示myobject对象没有定义,所以退而求其次,用另类方案动态生成另外js文件,也同样引用.但是汉字乱码问题又出来了.

解决方案 »

  1.   

    StreamWriter sr = new StreamWriter(filename,false,System.Text.Encoding.GetEncoding("gb2312"));   //用其它编码试试
    ....
     sr.Flush();   //Close前最好Flush一下。
     sr.Close();
      

  2.   

    主要还是编码的问题,最好显式地指明所用Encoding,不要用默认的,容易出乱码问题
      

  3.   

    非常感谢www_123du_com(鼠·神·泪)(www.123du.com) :其时我本意是不想生成这个动态js文件的,只是因为另外建立了一个js文件用于myobject()的处理过程,我由于myobject()过程的js文件也是引用的,所以在后台代码page_load中通过response.write("<script language='javascript'>var obj=new myobject();</script>");方式老是提示myobject对象没有定义,所以退而求其次,用另类方案动态生成另外js文件,假如我不动态生成这个js文件,请问我的问题出现在哪里
      

  4.   

    先引用定义myobject()的JS文件,然后你再引用动态生成的这个页面:src="js.aspx",
    这样是可以的,不需要生成XX.JS再去引用
      

  5.   

    把js文件另存为utf-8编码的文件
      

  6.   

    StreamWriter sr = new StreamWriter(filename,false,System.Text.Encoding.GetEncoding("utf-8"));
      

  7.   

    ,假如我不动态生成这个js文件,请问我的问题出现在哪里因为 代码类先执行 这个时假页面的html对象没有创建 所以这样
      

  8.   

    to wuxing2006()
    不知道你有没有解决的方案,因为我确实不想动态生成这个js文件,因为那么还要对文件进行操作了,会影响效率的
      

  9.   

    //试试,不知是不是你要的效果:
    Page.RegisterClientScriptBlock("a","<script language='javascript'>var obj=new myobject();</script>");