目的很简单,传递一个名字一个生日(都是文本框),然后输出,输入其他的可以,就是中文觉得是乱马,2个窗口都是utf-8,不知道什么问题 高手解答 万分感谢(除了中文是乱马其他字符传输是正常的)
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                  function getRequest()    
{
    createXMLHttpRequest();//创建对象函数 没有问题
    var nameValue=document.getElementById("name").value;
    var birthdayValue=document.getElementById("birthday").value;
    var queryString="name="+nameValue+"&birthday="+birthdayValue; 
    var encodeURIQueryString=encodeURI(encodeURI(queryString));   
    var url="9demo.aspx?"+encodeURIQueryString;  
    xmlHttp.open("get",url);
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4&&xmlHttp.status==200)
{
alert("服务器返回: "+xmlHttp.responseText);
}
}
    xmlHttp.send(null);     
}
          <input  type=text name="name"/>    <br />
<input type=text name="birthday"/> <br />
<input type="button" value="get" name="btnGet" onclick="getRequest();"/>
窗口2
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="utf-8"%>
<%@ Import Namespace="System.Data" %>
<% 
        Response.Write("get提交:   姓名为:" + Request["name"] + "     生日是:" + Request["birthday"]);
%>

解决方案 »

  1.   

    var encodeURIQueryString=escape(queryString);  
      

  2.   

    当你去模仿非常原始的方法(而非asp.net项目组特意封装好的方法)时,肯定问题层出不穷。关于asp.net中如何轻量级地使用ajax调用服务上的功能,你可以参考:http://www.google.cn/search?hl=zh-CN&rls=com.microsoft%3Azh-cn%3AIE-SearchBox&newwindow=1&q=asp.net+scriptservice+%E5%BC%82%E6%AD%A5&aq=f&oq=
      

  3.   

    不是所有地方使用抛开asp.net的原始方法都能说明你的技术很好的。有些人喜欢攻击asp.net的封装、控件,鼓吹越是低级的写法越好。可惜,那往往只适合学习和讨论,而不一定适合快速做产品。
      

  4.   

    窗口2
    加上
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    就ok
      

  5.   

    有一个server..SETENCODING什么的.忘了.GOGOLE一下COOKICE 乱码就行了
      

  6.   

     
        var queryString="name="+eacape(nameValue)+"&birthday="+eacape(birthdayValue); 
         
        var url="9demo.aspx?"+queryString;  
      

  7.   

    不用"get",用"POST"试试。
      

  8.   

    中文参数用escape()函数处理