亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

jquery中文亂碼的多種解決方法

2019-11-20 22:38:03
字體:
來源:轉載
供稿:網友

1、使用$.ajax出現的中文亂碼的解決方案:

復制代碼 代碼如下:

var _realname = $("input[name='_searchName']").val();
    var termcourseId = '<%=termid%>';
    var classId = '<%=classid%>';
    var url = "/addressbook/studentListNoPage.do";
    //var dataUrl = "formMap.TERMCOURSE_ID="+termcourseId+"&formMap.CLASS_ID="+classId+"&formMap.IS_ONLINE=all&formMap.REALNAME="+_realname;
    $.ajax({
           type: "POST",
           url: url,
           dataType:"json",
           data: {
               "formMap.TERMCOURSE_ID":termcourseId,
               "formMap.CLASS_ID":classId,
               "formMap.IS_ONLINE":"all",
               "formMap.REALNAME":encodeURI(_realname)
           },
           contentType: "application/x-www-form-urlencoded; charset=utf-8",
           success: function(data){
               data = eval(data);
               var html = "";
               $("#allUnselectedUser").html(html);
           },
           error : function(XMLHttpRequest, textStatus, errorThrown){
               alert(textStatus);
           }
        });

其中當使用dataUrl中的&方式提交時,無論前臺是使用encodeURI或者encodeURIComponent又或者escape把中文轉碼,提交到Action中都是亂碼,并不是想要的%e6%b1%89%e5%ad%97這種轉后編碼。即使加上contentType也不行。

把dataUrl中的&方式提交修改為data:{name:value}的方式提交即可。

在Action中使用URLDecoder.decode(realname, "UTF-8")來轉碼即可轉換為中文了。使用UTF-8是因為Jquery的提交方式默認為UTF-8,即使把contentType中的charset修改其他,例如GBK,后臺也把UTF-8修改GBK,都不能正確轉換。

jQuery ajax亂碼問題解決
一、測試環境
jQuery:1.3.2
tomcat:5.5.17
二、測試方法
1.使用get方式
服務器端java代碼:

復制代碼 代碼如下:

String name = new String(request.getParameter("name").getBytes("iso8859-1"),"utf-8");

客戶端js代碼:
復制代碼 代碼如下:

$.ajax({url: "2.jsp",type: "get",data: {name:"中文"},success: function(response){
        alert(response);
}});

結果:正確顯示
復制代碼 代碼如下:

$.ajax({url: "2.jsp",type: "get",data: "name=中文",success: function(response){
        alert(response);
}});

結果:亂碼
復制代碼 代碼如下:

$.get("2.jsp", { name: "中文" },function(response){
    alert(response);
});

結果:正確顯示
復制代碼 代碼如下:

$.get("2.jsp", "name=中文",function(response){
    alert(response);
});

結果:亂碼

2.post方式
服務器端java代碼:

復制代碼 代碼如下:

request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");

客戶端js代碼:
復制代碼 代碼如下:

$.ajax({url: "3.jsp",type: "post",data: "method=testAjaxPost&name=中文",success: function(response){
    alert(response);
}});

結果:正確顯示
復制代碼 代碼如下:

$.ajax({url: "3.jsp",type: "post",data: {name:"中文"},success: function(response){
    alert(response);
}});

結果:正確顯示
復制代碼 代碼如下:

$.post("3.jsp", { name: "中文" },function(response){
    alert(response);
});

結果:正確顯示
復制代碼 代碼如下:

$.post("3.jsp", "name=中文",function(response){
    alert(response);
});

結果:正確顯示
三、使用filter
復制代碼 代碼如下:

public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain chain) throws IOException, ServletException {
    HttpServletRequest req = (HttpServletRequest) request;
    if (req.getHeader("X-Requested-With") != null && req.getHeader("X-Requested-With").equalsIgnoreCase("XMLHttpRequest")) {
        request.setCharacterEncoding("utf-8");
    } else {
        request.setCharacterEncoding("gbk");
    }
    chain.doFilter(request, response);
}

jQuery在使用ajax的時候會在header中加入X-Requested-With,值為:XMLHttpRequest,filter中判斷是jQuery的ajax請求時就把字符編碼設為utf8,這樣可以解決post提交中的中文亂碼問題,不需要在代碼中設置request.setCharacterEncoding("UTF-8");
對于get方式的中文亂碼問題,建議不使用get方式提交中文,統統改為post ^-^

為了和prototype.js處理中文的方式一致,可以使用如下的方式,自定義header中的屬性RequestType
復制代碼 代碼如下:

$.ajax({
    url: "3.jsp",
    type: "post",
    data: {name:"中文"},
    beforeSend: function(XMLHttpRequest){
        XMLHttpRequest.setRequestHeader("RequestType", "ajax");
        alert("開始");
    },
    success: function(data, textStatus){
        alert(data);
    },
    error: function(XMLHttpRequest, textStatus, errorThrown){
        alert("錯誤:" + textStatus);
    },
    complete: function(XMLHttpRequest, textStatus){
        alert("完成:" + textStatus);
    }
 });
 

filter代碼如下:
復制代碼 代碼如下:

public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain chain) throws IOException, ServletException {
    HttpServletRequest req = (HttpServletRequest) request;
    if (req.getHeader("RequestType") != null && req.getHeader("RequestType").equalsIgnoreCase("ajax"))) {
        request.setCharacterEncoding("utf-8");
    } else {
        request.setCharacterEncoding("gbk");
    }
    chain.doFilter(request, response);
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩美女视频在线观看| 色偷偷91综合久久噜噜| 国产亚洲aⅴaaaaaa毛片| 亚洲人成在线观看| 激情懂色av一区av二区av| 亚洲黄色片网站| 欧美日韩亚洲视频一区| 欧美老女人bb| 国产免费一区二区三区在线观看| 国产精品美女午夜av| 欧美午夜精品久久久久久久| 亚洲欧美日韩中文在线制服| 欧美国产第一页| 岛国视频午夜一区免费在线观看| 97人人模人人爽人人喊中文字| 成人妇女免费播放久久久| 91成人在线观看国产| 91高清免费视频| 国产福利精品av综合导导航| 成人免费视频在线观看超级碰| 国产精品91久久久| 亚洲成人精品av| 青青草原一区二区| 欧美xxxx14xxxxx性爽| 亚洲成人av资源网| 久久久久久久久久久国产| 日韩欧美aaa| 国产精品亚洲欧美导航| 91免费精品国偷自产在线| 日韩精品亚洲元码| 亚洲日韩中文字幕在线播放| 日韩av在线播放资源| 日韩成人激情视频| www日韩中文字幕在线看| 欧美日韩在线视频观看| 精品久久久视频| 日韩在线国产精品| 久操成人在线视频| 久久琪琪电影院| 91美女片黄在线观| 日韩h在线观看| 亚洲级视频在线观看免费1级| 欧美日韩亚洲网| 成人字幕网zmw| 精品少妇一区二区30p| 精品国产一区二区三区在线观看| 亚洲最大福利视频网| 在线观看成人黄色| 欧美亚洲视频一区二区| 精品亚洲夜色av98在线观看| 久久久久久久国产精品| 欧美日韩国内自拍| 亚洲女人被黑人巨大进入al| 日韩在线视频免费观看高清中文| 日韩大片在线观看视频| 欧美一级淫片aaaaaaa视频| 国产suv精品一区二区三区88区| 在线播放国产一区二区三区| 中文字幕日韩专区| 欧美日韩免费区域视频在线观看| 日本精品久久中文字幕佐佐木| 欧美大片网站在线观看| 日韩中文字幕在线播放| 久久躁狠狠躁夜夜爽| 欧美极品少妇xxxxⅹ裸体艺术| 亚洲香蕉av在线一区二区三区| 97久久精品视频| 久久伊人精品一区二区三区| 国产午夜精品麻豆| 亚洲福利在线视频| 中文日韩电影网站| 欧美日韩国产成人在线观看| 性夜试看影院91社区| 8090成年在线看片午夜| 美女扒开尿口让男人操亚洲视频网站| 欧洲亚洲妇女av| 美女久久久久久久| 欧美老女人性生活| 日韩欧美中文第一页| 91成人在线观看国产| 亚洲大胆美女视频| 国模吧一区二区三区| 久久久精品免费视频| 精品国产一区二区三区久久久| 欧美一级大片在线观看| 国产精品h片在线播放| 欧美一区二区三区……| 国产欧美日韩精品在线观看| 色在人av网站天堂精品| 91精品国产免费久久久久久| 国产精品久久久久免费a∨| 91精品91久久久久久| 久久精品国产v日韩v亚洲| 91经典在线视频| 少妇久久久久久| 精品亚洲国产成av人片传媒| 日韩亚洲成人av在线| 国产精品电影网| 色阁综合伊人av| 中文字幕精品国产| 中文字幕精品一区久久久久| 中文字幕亚洲欧美日韩2019| 日韩中文字幕在线精品| 国产精品日韩欧美综合| 在线观看视频亚洲| 国产精品久久久久影院日本| 91久久久国产精品| 欧美日韩国产页| 在线亚洲欧美视频| 亚洲精品一区二区久| 国产精品扒开腿做爽爽爽视频| 久久精品视频在线播放| 一区二区三区四区在线观看视频| 欧美成人小视频| 国产精品视频yy9099| 久久久久这里只有精品| 57pao精品| 日韩成人性视频| 亚洲成色999久久网站| 亚洲精品456在线播放狼人| 亚洲国产精品视频在线观看| 午夜精品福利在线观看| 成人国产精品一区| 亚洲欧美国产精品久久久久久久| 日韩精品在线视频观看| 久久91精品国产91久久久| 精品福利一区二区| 久久国产精品久久久久久| 国产精品都在这里| 亚洲美女精品久久| 最好看的2019的中文字幕视频| 懂色av中文一区二区三区天美| 欧美理论电影网| 富二代精品短视频| 国产精品av在线播放| 久久久国产精品免费| 亚洲香蕉在线观看| 日韩av理论片| 国产成人精品一区二区三区| 日韩经典中文字幕在线观看| 91精品视频免费看| 精品欧美一区二区三区| 亚洲欧美视频在线| 亚洲色图五月天| 久久综合五月天| 欧美大尺度电影在线观看| 亚洲欧美精品中文字幕在线| 欧美第一黄网免费网站| 成人美女免费网站视频| 国产日韩欧美一二三区| 国产精品久久久精品| 亚洲大胆人体av| 成人网在线免费看| 一本色道久久综合狠狠躁篇的优点| 国产一区二区欧美日韩| 亚洲视频777| 97在线观看免费| 日本中文字幕不卡免费| 91精品国产乱码久久久久久久久| 亚洲aⅴ日韩av电影在线观看| 色噜噜狠狠狠综合曰曰曰| 久久久久久国产精品| 久久婷婷国产麻豆91天堂| 亚洲视频在线看|