博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ajax中文乱码问题解决方法(服务器端用servlet)
阅读量:5068 次
发布时间:2019-06-12

本文共 1598 字,大约阅读时间需要 5 分钟。

最近研究ajax,在界面上text中输入中文,发送出去后返回乱码。经过一个晚上的测试,已经得到满意答案,代码如下:

HTML:
    ……
    //实际上这里的charset=utf-8 也是可以的,因为在中文平台下
    //用了
GB2312
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312">
JS:
    我用了两个方法提交:GET 和 POST。
    在服务器端要对应不同的提交方式转换不同的编码。 
   ……
    //要传递的参数
   var queryString = "firstName=" + firstName + "&lastName=" + lastName
                          + "&birthday=" + birthday;    function  
 
    //GET方式提交
    doRequestUsingGET() {
        createXMLHttpRequest();
        var url = "GetAndPostExample?" +
queryString + "&timeStamp="
                          + new Date().getTime();
        xmlHttp.onreadystatechange = handleStateChange;
        xmlHttp.open("GET", url, true);
        xmlHttp.send(null);
    }
    //POST方式提交
    function doRequestUsingPOST() {
        createXMLHttpRequest();
        var url = "GetAndPostExample?timeStamp=" + new Date().getTime();
        xmlHttp.open("POST", url, true);
        xmlHttp.onreadystatechange = handleStateChange;
        xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlHttp.send(queryString);
    }
servlet:
        response.setContentType("text/xml");
        //这个一定要设置,这里的设置应该跟HTML中的一样,但是我在这里
        //用了 uft-8, 结果也是一样。
        response.setCharacterEncoding("GB2312");
      
        //当用POST方法时,一定要设置成utf-8,否则乱码
        String firstName = new String(request.getParameter("firstName").getBytes("ISO-8859-1"), "utf-8");
        //当用GET方法时,要设置成GB2312,否则乱码。
        String lastName = new String(request.getParameter("lastName").getBytes("ISO-8859-1"), "GB2312");
测试结果:
因为界面上两个控件
firstName 和  lastName都输入中文。
接收xmlHttp.responseText后,会发现其中一个为乱码,一个可以正常显示中文。
在网上还发现有人说用:
“老问题了,最简单的方法是,全部escape后发送。取回后unescape,绝对没有编码问题。
我测试后发现
escape后的东西全部变成null了。不知道有谁成功用过这个方法的,或者还有什么更好的解决乱码的方法,请拿出来共享一下吧 :)

转载于:https://www.cnblogs.com/soundcode/archive/2011/11/17/2252459.html

你可能感兴趣的文章
Cheatsheet: 2017 10.01 ~ 12.31
查看>>
【Python】Python-skier游戏[摘自.与孩子一起学编程]
查看>>
HDU - 1816 Get Luffy Out *(二分 + 2-SAT)
查看>>
C语言如何实现C++中对象属性和方法
查看>>
invokedynamic字节码指令
查看>>
笔记本F1到F2,都是功能键,怎么把F6给按出来
查看>>
Zookeeper介绍
查看>>
IP地址划分、组播地址、公有IP、私有IP
查看>>
Python 动态类型
查看>>
MVC的JavaScript Web富应用开发——学习笔记(1)MVC和类
查看>>
"模式识别与机器学习"读书笔记——1.6 Information Theory
查看>>
node.js 上传文件
查看>>
最好用的vimrc(摘自网络)
查看>>
ajax处理返回的三种格式(json格式 , xml通用格式 , html文本格式)(数据类型:整数、字符串、数组、对象)(基础最重要!)...
查看>>
<Yii 学习>写入日志
查看>>
zabbix 通过自定义key完成网卡监控
查看>>
Scala:Array/ArrayBuffer(简介/常用方法示例)
查看>>
plsql连接不上oracle
查看>>
几种sort算法的Java实现
查看>>
正则表达式 环视 逗号分隔数字
查看>>