在学习ajax验证的时候:
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        
        boolean passed = validateUseName(request.getParameter("usename"));
        response.setContentType("text/xml;;charset=UTF-8");
        response.setHeader("Cache-Control", "no-cache");
        String message = "不可使用的用户名";
        
        if (passed) {
            message = "可使用的用户名";
        }
        out.println("<response>");
        out.println("<passed>" + Boolean.toString(passed) + "</passed>");
        out.println("<message>" + message + "</message>");
        out.println("</response>");
        out.close();
     }返回的message在页面显示为乱码,请问如何显示正常的中文?谢谢

解决方案 »

  1.   

    你的主页面的编码格式如何??
    贴你的主页面编码出来看看!另外,有个技巧,你打算使用UTF-8时,最好用editplus或者ue编辑源代码,另存为UTF-8的文件编码格式!一般很少有乱码
      

  2.   

    主页部分:
    <?xml version = "1.0"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns = "http://www.w3.org/1999/xhtml">
    <%@ page language="java" contentType="text/html; charset=GBK"%>
    <script type="text/javascript">
            var xmlHttp;        function createXMLHttpRequest() {
                if (window.ActiveXObject) {
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                } 
                else if (window.XMLHttpRequest) {
                    xmlHttp = new XMLHttpRequest();                
                }
            }        function validate() {
                createXMLHttpRequest();
                var usename = document.getElementById("usename");
                var url = "../ValidationServlet?usename=" + escape(usename.value);
                xmlHttp.open("GET", url, true);
                xmlHttp.onreadystatechange = callback;
                xmlHttp.send(null);
            }        function callback() {
                if (xmlHttp.readyState == 4) {
                    if (xmlHttp.status == 200) {
                        var mes = xmlHttp.responseXML.getElementsByTagName("message")[0].firstChild.data;
                        var val = xmlHttp.responseXML.getElementsByTagName("passed")[0].firstChild.data;
                        setMessage(mes, val);
                    }
                }
            }
            
            function setMessage(message, isValid) {            
                var messageArea = document.getElementById("usenameMessage");
                var fontColor = "red";
                
                if (isValid == "true") {
                    fontColor = "green";                
                }
                messageArea.innerHTML = "<font color=" + fontColor + ">" + message + " </font>";
            }    </script>
    <script language=javascript src="../version/version.js"></script>
    <jsp:include page="head.jsp"/>
    <%
    String td_1=" width='50%' align='right' height='50'";
    String td_2=" width='50%' align='left'";
    String td_line=" width='100%' height='5' background='images/line.gif' colspan='2'";
    String nbsp="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
    String input_1=" class='input1' size='30'";
    %>
    <table border="0" width="800"  align="center" bgColor="#FFFFFF">
    <tr>
    <td>
    <form action = "#" method = "post">
    <table width="100%">
      <tr>
    <td colspan="2">
    &nbsp;&nbsp;<font size="3"><b>填写注册信息</b></font>&nbsp;&nbsp;(带<font color="red">*</font>的为必填项)
    </td>
      </tr>
    <tr>
    <td <%=td_line%>>
    </td>
      </tr>
    <tr>
    <td colspan="2">
    &nbsp;&nbsp;<font size="3"><b>1.帐户信息:</b></font>
    </td>
    </tr>
    <tr>
    <td <%=td_1%>>
    &nbsp;&nbsp;会员名:&nbsp;&nbsp;</font><font color="red">*</font>&nbsp;&nbsp;<input type="text" size="10" id="usename" onchange="validate();" class="input1" name="usename">
    <div id="usenameMessage"></div><%=nbsp%>
    </td>
      

  3.   

    我看了下在servlet里print出的是正确的编码,到页面中就变???????了,有哪位给解释下吗,急啊~~~:(
      

  4.   

    你自己写的UTF8了。告诉楼主一个办法,在JavaScript中用escape将字符串转换成URL格式即可。