引用 ajax传递中文的两种方法


服务器:tomcat

默认字符集:ISO8859-1

因为没有测试过在服务器字符集为UTF-8时ajax传递中文的情况,所以暂只考虑此状态下的转换。

1. 两次编码

JavaScript:

function fire() {

    var url = "sm.do?method=md&paras=para";

    url = encodeURI(url); // 1次编码

    url = encodeURI(url); // 2次编码

    // 发送url并获得返回值

}

action:

String paras = URLDecoder.decode(request.getParameter("paras"), "utf-8"); // 用uft-8解码一次即可得到中文字符

2.编码中文字符

JavaScript:

var $ = {

    para : "中文",

    fire : function() {

        var cpara = encodeURIComponent(this.para); // 编码中文字符

        var url = "sm.do?method=md&paras=" + cpara;

        // 发送url并获得返回值

    }

};

action:

String paras = request.getParameter("paras"); // 直接即可获得中文字符

附:如果是要在action里将xml类型数据当作返回值,加上如下语句:

response.setContentType("text/xml");

response.setHeader("Cache-Control", "no-cache");

response.setCharacterEncoding("UTF-8");

2015竖柱吉日 

原文地址:https://www.cnblogs.com/yonsy/p/2458952.html