大家有没有AJAX验证注册时重复用户(一定要支持中文的) 网上好多都不支持中文 已输入中文就不能判断了先给大家个例子  英文和数字没问题   一遇到汉字就不行了  大家有解决办法没:<%@ page language="java" import="java.util.*"  pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>AJAX注册验证是否重复用户</title>


  </head>
  
  <body>
  <script type="text/javascript">
  
  var xmlHttp;    //AJAX核心对象
  var flag;       //定义标志位   
  function createXMLHttp()
  {
    if(window.XMLHttpRequest)  //判断当前浏览器类型
     {
        xmlHttp=new XMLHttpRequest();//表示当前是FIREFOX内核浏览器
     }
     else                         //表示当前是IE内核
     {
       xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
     
     }
  
  
  }
  
  function checkUsername(username)
  {
  
     createXMLHttp();   //建立xmlHttp核心对象
     //设置一个请求,通过地址重写的方式将userid传递到JSP中
     xmlHttp.open("POST","CheckUser?username="+username);
     //设置请求完成之后处理的回调函数
     xmlHttp.onreadystatechange=checkUseridCallback;
     xmlHttp.send(null);  //发送请求,不传递任何参数
     document.getElementById("msg").innerHTML="正在验证''''''";
     
  
  }
  
  function  checkUseridCallback()  //定义回调函数
  {
     if(xmlHttp.readyState==4)    //数据返回完毕
     {
        if(xmlHttp.status==200)   //HTTP操作正常
        {
        
          var text=xmlHttp.responseText;  //接受返回的内容
          if(text=="true")
          {
            flag=false;  //无法提交表单
            document.getElementById("msg").innerHTML="用户ID重复,无法使用";
            
          }
          else
          {
            flag=true;  //可以提交表单
            
            document.getElementById("msg").innerHTML="此用户ID可用";
          
          }
        
        }
      
     }
     
  
  }
  
  function checkForm()
  {
  
    return flag;
  
  }
  
  
  </script>
  
  <form action="CheckUser" method="post" onsubmit="return checkForm()">
    用户名: <input type="text" name="username" onblur="checkUsername(this.value)"> <span id="msg"></span>  <br>
  
        
   密码: <input type="text" name="password"><br>
   邮箱: <input type="text" name="email"> <br>
    <input type="submit" value="注册">
    </form>
  </body>
</html>

解决方案 »

  1.   

    我的处理方法是在后台接收的时候加上:
    HttpServletResponse response = ServletActionContext.getResponse();
    response.setCharacterEncoding("UTF-8");前台的ajax加上:
    contentType: "application/x-www-form-urlencoded; charset=utf-8",
    我用的是JQ的框架  你现在后台接收的时候加上那句话试试
      

  2.   

    js不是有那个encodURL,改代码的时候测试过那么写肯定是可以的
      

  3.   

    中文使用encodejs进行encode
    var url = "CheckUser?username=中文";
    xmlHttp.open("POST",encode(url));
    解密使用username = URLDecoder.decode(username);另外一般ajax 有成熟的jquery ajax框架
    里面可以设置编码集。
      

  4.   

    encode() - > encodeURI()
      

  5.   

    哦 对了  要经过2次encodeURI
    encodeURI(encodeURI(url))
      

  6.   

    'cp/findCpNameISexist.h?cpName='+encodeURIComponent(encodeURIComponent($("#cpName").val()))
      

  7.   

    两次encodeURI(encodeURI(url))后台用username= URLDecoder.decode(username,"UTF-8");这样就可以了