学习ajax验证过程中出现中文乱码的问题

anltech 2006-05-26 10:53:17
在学习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在页面显示为乱码,请问如何显示正常的中文?谢谢
...全文
150 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
捏造的信仰 2006-06-14
  • 打赏
  • 举报
回复
你自己写的UTF8了。

告诉楼主一个办法,在JavaScript中用escape将字符串转换成URL格式即可。
zq_hj_huang 2006-06-14
  • 打赏
  • 举报
回复
我也遇到同样问题
anltech 2006-05-27
  • 打赏
  • 举报
回复
主页部分:
<?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="                    ";
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">
  <font size="3"><b>填写注册信息</b></font>  (带<font color="red">*</font>的为必填项)
</td>
</tr>
<tr>
<td <%=td_line%>>
</td>
</tr>
<tr>
<td colspan="2">
  <font size="3"><b>1.帐户信息:</b></font>
</td>
</tr>
<tr>
<td <%=td_1%>>
  会员名:  </font><font color="red">*</font>  <input type="text" size="10" id="usename" onchange="validate();" class="input1" name="usename">
<div id="usenameMessage"></div><%=nbsp%>
</td>
cheqiang 2006-05-27
  • 打赏
  • 举报
回复
你的主页面的编码格式如何??
贴你的主页面编码出来看看!

另外,有个技巧,你打算使用UTF-8时,最好用editplus或者ue编辑源代码,另存为UTF-8的文件编码格式!

一般很少有乱码
anltech 2006-05-27
  • 打赏
  • 举报
回复
up
anltech 2006-05-27
  • 打赏
  • 举报
回复
我看了下在servlet里print出的是正确的编码,到页面中就变???????了,有哪位给解释下吗,急啊~~~:(

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧