打开相同的页面,如default.aspx?str=中国人,如果用response.redirect方式,所接受到的str的值不乱码,但用showModalDialog打开时,所接受到的str的值(中国人)就会乱码,这是怎么回事?
我的web.config文件,里面的设置是:<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
(请注意,不能将配置文件改为:<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>)

解决方案 »

  1.   

    中文url传值肯定要编码的,js编码或者服务器端编码都可以,用的时候解码就行了,
      

  2.   

    Server.UrlDecode()
    编码Server.UrlEncode()
    解码
      

  3.   

    呵呵 ,不好意思,是反了
    Server.UrlEncode()编码
    Server.UrlDecode()解码
      

  4.   

    我的实际情况如下:
    客户端是这样打开一个弹出窗口的:showModalDialog("default.aspx?str="+form1.textbox1.value)在弹出窗口的在page_load(服务器端)里面写:
    label1.text=request("str")请各位告诉我,要如何做才能让str的值不会乱码?
      

  5.   

    default.aspx?str= + Server.UrlEncode("中国人");str = Request.QueryString("str");
      

  6.   

    不明白,在客户端的onclick事件里写 Server.UrlEncode?这个好象是服务器端的方法吧不行,不能弹出窗口!
      

  7.   

    可以用JavaScript的escape(需要编码的字符串),还可以用
    <%=  
       Server.UrlEncode(需要编码的字符串) 
    %>
      

  8.   

    在服务端Page_Load()注册javascript脚本Page.ClientScript.RegisterClientScriptBlock(this.GetType(),"myscript",
    "function showdialog(){showModalDialog(\"default.aspx?str=\"+ Server.UrlEncode(textbox1.Text) +"\"})",true);客户端调showdialog()打开网页对话框对话框中服务端取值str = Server.UrlDecode(Request.QueryString["str"].ToString());
      

  9.   

    或者,在服务端建一个公开属性记录编码后的中文
    public string MyStr
    {
      get
      {
        return Server.UrlEncode(textbox1.Text) 
      }
    }
    客户端:
    showModalDialog("default.aspx?str="+ <%= MyStr %>)对话框中服务端取值同上
    str = Server.UrlDecode(Request.QueryString["str"].ToString());
      

  10.   

    好象不太行.因为textbox1的值是在客户端输入的,也就是说打开页面时,服务器端根本不知道它的值.有比较好的方案吗?
    分不够可以加.
      

  11.   

    对话框中
    Response.Charset = "GB2312";
      

  12.   

    还是afdfgg(午夜飞行) 高用它解决问题了.Response.Charset = "GB2312";