锁定老帖子 主题:XMLHTTP中文乱码
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-03-21
HTML; <html> <head> <title>Using Ajax for validation</title> <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 date = document.getElementById("birthDate"); var url = "ValidationServlet?birthDate=" + escape(date.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("dateMessage"); var fontColor = "red"; if (isValid == "true") { fontColor = "green"; } messageArea.innerHTML = "<font color=" + fontColor + ">" + message + " </font>"; } </script> </head> <body> <h1>Ajax Validation Example</h1> Birth date: <input type="text" size="10" id="birthDate" onchange="validate();"/> <div id="dateMessage"></div> </body> </html> ValidationServlet public class ValidationServlet extends HttpServlet { /** Handles the HTTP <code>GET</code> method. * @param request servlet request * @param response servlet response */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); boolean passed = validateDate(request.getParameter("birthDate")); response.setContentType("text/xml"); response.setHeader("Cache-Control", "no-cache"); String message = "You have entered an invalid date."; if (passed) { message = "You have entered a valid date."; } out.println("<response>"); out.println("<passed>" + Boolean.toString(passed) + "</passed>"); out.println("<message>" + message + "</message>"); out.println("</response>"); out.close(); } /** * Checks to see whether the argument is a valid date. * A null date is considered invalid. This method * used the default data formatter and lenient * parsing. * * @param date a String representing the date to check * @return message a String represnting the outcome of the check */ private boolean validateDate(String date) { boolean isValid = true; if(date != null) { SimpleDateFormat formatter= new SimpleDateFormat("MM/dd/yyyy"); try { formatter.parse(date); } catch (ParseException pe) { System.out.println(pe.toString()); isValid = false; } } else { isValid = false; } return isValid; } } 其中 message 的信息 换成中文怎么打印出乱码呢 怎样解决呢? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-03-22
1、增加:response.setContentType("text/xml; CHARSET=utf8");
2、out.println("<?xml version='1.0' encoding='GBK'?>\n"); |
|
返回顶楼 | |
发表时间:2006-03-22
呵呵 不行 不行 啊 都试了N边了
|
|
返回顶楼 | |
发表时间:2006-03-22
<script language="VBScript"> function bin2str(bin); dim tmp,ustr tmp="" for i=1 to LenB(bin);-1 ustr=AscB(MidB(bin,i,1);); if ustr>127 then i=i+1 tmp=tmp&chr(ustr*256+AscB(MidB(bin,i,1););); else tmp=tmp&chr(ustr); end if next bin2str=tmp end function </script> 用这个VBScript方法对request.responseBody进行GB2312解码 |
|
返回顶楼 | |
发表时间:2006-03-22
zlsunnan 写道 呵呵 不行 不行 啊 都试了N边了
可以刷新缓存后再试试 YuLimin 的方法, 如果是直接在servlet里输入中文的话, 检查servlet 编译时是否是中文Locale。 再否则,建议统一使用UTF-8编码方案,中文从ResourceBundle中获取。 |
|
返回顶楼 | |
发表时间:2006-04-04
YuLimin 的方法应该是没问题的,你可以把传给客户端的xml输出到后台看看是否已经是乱码
|
|
返回顶楼 | |
发表时间:2006-04-05
<META http-equiv="Content-Type" content="text/html;charset=UTF-8" />
String encoding="UTF-8"; request.setCharacterEncoding(encoding); response.setCharacterEncoding(encoding); out.println("<?xml version='1.0' encoding='"+encoding+"' ?>"); (In Tomcat server.xml) <Connector ... URIEncoding="UTF-8"> 这是我处理乱码的三板斧(能设的地方全设成UTF-8),希望有所帮助 |
|
返回顶楼 | |
发表时间:2006-04-05
我使用ajax的时候也出现乱码,统一改成utf-8就好了。包括用dojo.require进来的js也是,不用utf-8统统乱码。我怀疑是xmlhttp的问题。
|
|
返回顶楼 | |
发表时间:2006-09-18
采用统一的UTF-8编码是可以解决中文问题,但是特殊字符问题怎么解决呢?如 $ % ^ & +
|
|
返回顶楼 | |
发表时间:2006-10-18
$ % ^ & + 用html转意编码
|
|
返回顶楼 | |