using System.IO;
using System.Reflection; //这个空间是使用Assembly类的
protected overrides void OnPreRender(EventArgs e)
 {
    string clientscript; //定义放js的变量
    //定义引用此程序集
    //GetExecutingAssembly()方法作用是
    //获取当前代码正从中运行的 Assembly。
    Assembly asm = Assembly.GetExecutingAssembly();
    //下面的代码定义了一个字符串变量
    //定义的上面介绍的js文件名
    //注意,必须加上你的此文件使用的名称空间!!
    string resource="Sanxing.WebControl.script1.js"
    //开始从使用的程序集加载使用的资源,key就是上面定义的string
    //资源加载到流中
    Stream stm = asm.GetManifestResourceStream(resource);
    //下面的代码很简单,从流中读取内容,放到上面定义的变量里面
    StreamReader reader = new StreamReader(stm);
    clientscript = reader.ReadToEnd();
    reader.Close();
    stm.Close();    //好,现在这个js已经放到string里面了,我们把它发送到客户端
    //使用Page.RegisterClientScriptBlock()方法,
    //web方式测试可以直接使用
    if (!Page.RegisterClientScriptBlock("clientscripttest"))
      Page.RegisterClientScriptBlock("clientscripttest",clientscript);    //下面的代码不是发送js的,web测试不需要
    base.OnPreRender(e);
  }请问各位大大,怎样才能解决中文不见了的问题?
我是菜鸟一个,请大哥大姐们多多帮忙!

解决方案 »

  1.   

    1.确认你的资源是embeded,而且JS文件一般没有<script language="javascript">..</script>的,你的输出居然没加这个TAG,有意思2.
    StreamReader reader = new StreamReader(stm);
    ===>
    StreamReader reader = new StreamReader(stm, System.Text.Encoding.GetEncoding("GB2312"));3.试着改变你的web.config
    <configuration> 
     <system.web> 
    <globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312" />
     </system.web> 
    </configuration> 
      

  2.   

    谢谢思归老大,我的资源是embeded,而且也加了<script>.....</script>的,否则也不可能在客户端输出并执行,只是jscript其中的中文不见了。试着改变web.config,我也试过了,不行。StreamReader reader = new StreamReader(stm);
    ===>
    StreamReader reader = new StreamReader(stm, System.Text.Encoding.GetEncoding("GB2312"));
    上面这种方法我还没试过,不管怎样,谢谢思归老大了。
    大哥大姐们还有没有其它的方法啊?