在浏览器端使用XMLHttpRequest对象向服务器端传送中文参数,如果不在浏览器端和服务器端进行处理时,会出现中文乱码问题.针对这种问题,有很多的解决办法,但往往都是在IE下可以正常显示中文,在其他浏览器下(比如FireFox)却仍然是乱码.在FireFox下解决了乱码问题,但回到IE下访问却出现了乱码问题.所以针对要在目前流行的各种浏览器下解决中文乱码问题,才能使编写的Web程序变得通用.
针对这种问题的解决方案,我总结大致有两种:
一,在浏览器端对要传递的中文参数进行编码处理.代码如下:
xmlhttp.open("POST","AjaxServlet",true); //请求参数初始化
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //因为请求方式为POST,所以这里要设置请求头.(如果请求方式为GET,此句代码可以省略)
xmlhttp.send("name="+encodeURI(encodeURI("中国"))); //向服务器端发送参数
在服务器端代码:
PrintWriter out = response.getWriter(); //得到response的输出流对象
String name1 = request.getParameter("name"); //得到KEY为"name"的请求参数
String name = URLDecoder.decode(name1,"utf-8"); //对得到的参数进行解码
out.print(name); //向浏览器端发送数据
二,在浏览器端对要传递的中文参数进行编码处理.代码如下:
xmlhttp.open("POST","AjaxServlet",true); //请求参数初始化
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //因为请求方式为POST,所以这里要设置请求头.(如果请求方式为GET,此句代码可以省略)
xmlhttp.send("name="+encodeURI("中国")); //向服务器端发送参数
在服务器端代码:
PrintWriter out = response.getWriter(); //得到response的输出流对象
String name1 = request.getParameter("name"); //得到KEY为"name"的请求参数
String name = new String((name1.getBytes("ISO-8859-1")),"UTF-8"); //对得到的参数进行解码
out.print(name); //向浏览器端发送数据
以上两种方法,在使用XMLHttpRequest对象传递中文参数时,乱码问题可以在任意浏览器下解决,正确显示中文.
该文章转载自网络大本营:http://www.xrss.cn/Dev/AJAX/2007101717013.Html
分享到:
相关推荐
[王兴魁]AJAX核心技术1-XMLHttpRequest对象的使用
Ajax核心对象XMLHTTPRequest详细参数及例子
Ajax深度剖析,XMLHttpRequest对象大揭秘
VS2008 AJAX控件介绍 AJAX组成及XMLHttpRequest对象的讲解
经测试,用此方法创建XMLHttpRequest对象,在运用AJAX的时候,可以的兼容IE6,IE7,IE8,Opera,Safari,Google Chrome,fireFox。主流的应该就这些吧?theWorld,遨游等浏览器都是以IE为核心的,所以肯定也没问题。 另外...
05-使用XMLHttpRequest对象发送和接收XML数据,及乱码问题的解决.pdf
主要介绍了使用Ajax技术通过XMLHttpRequest对象完成首页登录功能,很不错的尝试,需要的朋友可以参考下
Ajax 简单实例 XMLHttpRequest对象的创建,请求,发送,仅供初学者
全面剖析Ajax XMLHttpRequest对象
详细讲述了前端Ajax通信相关的XMLHttpRquest对象的各种属性与方法
WEB开发 之 AJAX - 创建 XMLHttpRequest 对象.docx
[王兴魁]AJAX核心技术2-XMLHttpRequest对象的扩展问题
asp.net ajax操作xmlHttpRequest对象返回的ResponseXML和ResponseText例子
AJAX入门之XMLHttpRequest慨述 在使用XMLHttpRequest对象发送请求...由于存在这些差别,JavaScript代码中必须包含有关的逻辑,从而使用ActiveX技术或者使用本地JavaScript对象技术来创建XMLHttpRequest的一个实例。
ajax XMLHttpRequest。。。。。。
ajax原理,ajax原理和XmlHttpRequest对象,ajax优缺点
全面剖析Ajax的XMLHttpRequest对象.doc
AJAX XMLHttpRequest慨述 在使用XMLHttpRequest对象发送请求和处理...由于存在这些差别,JavaScript代码中必须包含有关的逻辑,从而使用ActiveX技术或者使用本地JavaScript对象技术来创建XMLHttpRequest的一个实例。
AJAX XMLHttpRequest对象方法 XMLHttpRequest对象属性