Ajax request response 乱码解决方法

此功能已进入试用一周了,都没有问题,奇怪的是今天出现了问题??

复制代码 代码如下:

AjaxRequestObj.createEqStatusParameter=function() {

    if (eqStatusArray.length < 1) {

        return;

    }

    var paramNameArray = new Array();

    var paramValueArray = new Array();

    //取状态数组

    for (var index = 0, step = eqStatusArray.length; index < step; index++) {

        var tempEqStatusObj = eqStatusArray[index];

        paramNameArray.push(tempEqStatusObj.eqCode + "`" + tempEqStatusObj.opDateTime);

        paramValueArray.push(tempEqStatusObj.status);

    }

    //分解、生成请求串。

    var paramStr = "";

    paramStr = paramStr.concat("eqStatusNames=").concat(encodeURIComponent(paramNameArray.join(","))).concat("&");

    paramStr = paramStr.concat("eqStatusValues=").concat(encodeURIComponent(paramValueArray.join("`")));

    return paramStr;

};

xmlHttpObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded")

xmlHttpObj.send(param);

客户端将参数以UTF-8方式传递给应用端,在使用此参数时直接从request中取就可以。

[Ajax接收响应信息]

直接使用forward跳转实现div局部内容变更

复制代码 代码如下:

if ("doQueryRequest".equals(actParam)) {

    EquipUtils equipUtilsObj = EquipUtils.getInstance();

    //取查询参数、拼接

    equipStatusMgrObj.setEquipCondition(equipUtilsObj.createEquipFilter(request));

    equipStatusMgrObj.setEquipStatusCondition(equipUtilsObj.getEquipStatusDate(request));

    //设备信息

    List<DynaBean> equipArray = equipStatusMgrObj.queryEquip(null);

    //设备状态

    Map<String, Map<String, String>> equipStatusMapping =

        equipStatusMgrObj.queryEquipState4Map(equipArray, null);

    sessionObj.setAttribute("paginationEntity", equipStatusMgrObj.getPaginationEntity());

    sessionObj.setAttribute("equipCondition", equipStatusMgrObj.getEquipCondition());

    sessionObj.setAttribute("eqStatusCondition", equipStatusMgrObj.getEquipStatusCondition());

    request.setAttribute("equipList", equipArray);

    request.setAttribute("dateList", equipStatusMapping);

    try {

        request.getRequestDispatcher("/eq/detectPoint/InnerEqStatusRefresh.jsp").forward(request, response);

    } catch (Exception e) {

        e.printStackTrace();

    }

} else if ("getPageToolBar".equals(actParam)) {

    PaginationEntity pEntity = (PaginationEntity) sessionObj.getAttribute("paginationEntity");

    String tempStr = pEntity.getPaginationTool();

    OutputStream out;

    try {

        response.setContentType("text/html;charset=UTF-8");

        out = response.getOutputStream();

        out.write(tempStr.getBytes("UTF-8"));

        out.flush();

        out.close();

    } catch (IOException e) {

        e.printStackTrace();

    }

}

因为,目前使用xmlHttpObj.responseText,responseText默认就是UTF-8所以将跳转的页面弄成UTF-8是不错的选择。至少不用担心乱码。。

[乱码原因]

之前此功能使用的是GB18030编码,到修改为止在其它客户机以及同事的机器上都非常正常,但就是我自己的机器翻页出现乱码。当我将此功能所用到的呈现文件统一使用UTF-8就ok了,也不知那xmlHttpObj触动了机器的那个神经。。查了些资料也都是说搞国际化的趋势,问题是解决了但原因没有找到!

[发现一Bug]

response.setContentType("text/html;charset=UTF8");在我机器上不抛错,但在同事的机器上就会抛错

改成response.setContentType("text/html;charset=UTF-8");一切OK..

时间: 2024-09-24 03:07:25

Ajax request response 乱码解决方法的相关文章

Ajax request response 乱码解决方法_AJAX相关

此功能已进入试用一周了,都没有问题,奇怪的是今天出现了问题?? 复制代码 代码如下: AjaxRequestObj.createEqStatusParameter=function() {     if (eqStatusArray.length < 1) {         return;     }     var paramNameArray = new Array();     var paramValueArray = new Array();     //取状态数组     for

jquery ajax返回值乱码解决方法

实例解决方法 encodeuri(encodeuri(data))  ///注意两次编码!! $.ajax({        type: "post",        url: url,        data:data,        contenttype :"application/x-www-form-urlencoded;charset=utf-8",        cache: false,        success  : viewajax.hand

ajax post get 乱码解决方法

在使用"get"时,抓取的页面最后加上编码类型 <% 服务器端:servletactioncontext.getresponse().setcharacterencoding("utf-8"); 客户端 网页特效p/jsp.html target=_blank >jsp教程: <%@ page language="java" contenttype="text/html; charset=utf-8" pag

jquery ajax post 中文编码乱码解决方法

encodeuricomponent会以utf-8编码,在gbk编码下,可不可以以gbk进行编码呢? 如果还在打encodeuricomponent主意的话,那不好意思,encodeuricomponent只会utf-8编码,并没有其他api进行其他编码:不过,别担心,看看下面: encodeuricomponent,它是将中文.韩文等特殊字符转换成utf-8格式的url编码. escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeur

Asp中使用JQuery的AJAX提交中文乱码解决方法

客户端页:client.html 复制代码 代码如下: <script>     //jquery的post     $.post     (         'server.asp',         {             Act:'DoSubmit',             UserName:escape('脚本之家'),//进行编码            WebSite:'www.jb51.net'         },         function(data)       

jquery的ajax()函数传值中文乱码解决方法介绍_jquery

复制代码 代码如下: $.ajax({ dataType : 'json',type : 'POST',url : 'http://localhost/test/test.do',data : {id: 1, type: '商品'},success : function(data){ } } ); 问题: 提交后后台action程序时,取到的type是乱码 解决方法: 方法一:提交前采用encodeURI两次编码,记住一定是两次 1.修改以下代码 复制代码 代码如下: data:{id:1, t

ASP.NET中AJAX乱码解决方法

ajax乱码是一个程序员经常会碰到的问题,今天我们要讲的是关于asp教程.net中ajax乱码解决方法哦,下面先详细的介绍了处理方法,然后再举例说明 利用asp.net教程 string s = system.text.encoding.utf8.getstring(request.binaryread(request.contentlength));   system.collections.specialized.namevaluecollection form = httputility.

ajax中文乱码解决方法总结

ajax乱码解决办法一: 在服务器指定发送数据的格式: 在jsp文件中: response.setContentType("text/text;charset=UTF-8");//返回的是txt文本文件 或是 response.setContentType("text/xml;charset=UTF-8");//返回的xml文件 PHP:header("Content-Type:text/html;charset=GB2312"); ajax乱码

ASP.NET中Request接收参数乱码解决方法

asp教程.net中request接收参数乱码解决方法 asp.net教程 request对象的属性和方法比较多,常用的几个为:useragent 传回客户端浏览器的版本信息,userhostaddress 传回远方客户端机器的主机ip 地址,userhostname 传回远方客户端机器的dns 名称,physicalapplicationpath 传回目前请求网页在server 端的真实路径. 下面进行正题,我的web.config配置文件里配置了全局为"gb2312"编码: <