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

首頁 > 開發 > AJAX > 正文

Ajax傳輸中文亂碼怎么辦

2024-09-01 08:30:33
字體:
來源:轉載
供稿:網友

Ajax傳輸中文亂碼怎么辦?相信很多小伙伴們都被這個問題所困擾過,那么我們現在就跟錯新小編一起去看看Ajax傳輸中文亂碼的解決方法,大家如果覺得有幫助的話就收藏起來吧。

AJAX簡介

AJAX = Asynchronous JavaScript and XML(異步的 JavaScript 和 XML)。

AJAX 不是新的編程語言,而是一種使用現有標準的新方法。

AJAX 是與服務器交換數據并更新部分網頁的藝術,在不重新加載整個頁面的情況下。

ajax傳輸中文亂碼問題描述:

  我是在一個jsp頁面有一個保存按鈕,點擊時會觸發saveForm()的js函數,在saveForm()函數里經過校驗后,會通過ajax發送數據請求,這樣就不用通過提交表單來傳輸數據了,ajax估計就是這樣的好處吧,目前對ajax還不太熟悉。

ajax傳輸亂碼時的代碼:

function saveForm(){if(document.theformadd.onsubmit()){disableAllBtn(true);j$.ajax({type:"get",url:"add_form_do.jsp",data:{problem_id : j$("#problem_id").val(),product_id : "<%=product_id%>",productId : j$("#productId").val(),depart_id : j$("#depart_id").val(),fk_busi_id : j$("#fk_busi_id").val(),fk_type : j$("#fk_type").val(),fk_source : j$("#fk_source").val(),fk_info : j$("#fk_info").val(),fk_name : j$("#fk_name").val(),fk_bank_name : j$("#fk_bank_name").val(),fk_bank_acct : j$("#fk_bank_acct").val(),sk_name : j$("#sk_name").val(),sk_bank_name : j$("#sk_bank_name").val(),sk_bank_acct : j$("#sk_bank_acct").val(),fk_money : j$("#fk_money").val(),fk_summary : j$("#fk_summary").val(),fk_date : j$("#fk_date").val(),input_man : "<%=input_operatorCode%>"},success:function(ret){if(ret == 1) {sl_alert("保存成功!");}else{sl_alert(ret);}window.returnValue=true;window.close();}});}}

然后我們在add_form_do.jsp中獲取數據

<%@ page contentType="text/html; charset=GBK" import="java.math.*,com.enfo.intrust.intrust.vo.*,java.io.*, com.enfo.intrust.web.*,java.util.*,com.enfo.intrust.dao.*,com.enfo.intrust.intrust.*,com.enfo.intrust.tools.*,com.enfo.intrust.project.*" %><script type="text/javascript" src="<%=request.getContextPath()%>/ext2.0/ext-base.js"></script><script type="text/javascript" src="<%=request.getContextPath()%>/ext2.0/ext-all.js"></script><%@ include file="/includes/operator.inc" %><%try{product_id = Utility.parseInt(Utility.trimNull(request.getParameter("product_id")),product_id);UnpostwarrantLocal local = EJBFactory.getUnpostwarrant();Integer problem_id = Utility.parseInt(request.getParameter("problem_id"),new Integer(0));Integer depart_id = Utility.parseInt(request.getParameter("depart_id"),new Integer(0)); //部門Integer productId = Utility.parseInt(Utility.trimNull(request.getParameter("productId")),product_id);String fk_busi_id = Utility.trimNull(request.getParameter("fk_busi_id")); //字典1206 費用String fk_type = Utility.trimNull(request.getParameter("fk_type")); //付款方式 2103String fk_source = Utility.trimNull(request.getParameter("fk_source")); //付款依據 2104String fk_info = Utility.trimNull(request.getParameter("fk_info")); //票據號碼String fk_name = Utility.trimNull(request.getParameter("fk_name")); //付款單位String fk_bank_name = Utility.trimNull(request.getParameter("fk_bank_name")); //付款銀行名稱String fk_bank_acct = Utility.trimNull(request.getParameter("fk_bank_acct")); //付款銀行賬號String sk_name = Utility.trimNull(request.getParameter("sk_name")); //收款單位String sk_bank_name = Utility.trimNull(request.getParameter("sk_bank_name")); //收款銀行名稱String sk_bank_acct = Utility.trimNull(request.getParameter("sk_bank_acct")); //收款銀行賬號BigDecimal fk_money = Utility.parseDecimal(Utility.trimNull(request.getParameter("fk_money")).replaceAll(",",""),new BigDecimal(0)); //金額String fk_summary = Utility.trimNull(request.getParameter("fk_summary")); //備注Integer fk_date = Utility.parseInt(request.getParameter("fk_date"),new Integer(Utility.getCurrentDate())); //要求付款日期local.setProblem_id(problem_id);//local.setProduct_id(product_id);local.setProduct_id(productId);local.setDepart_id(depart_id);local.setFk_busi_id(fk_busi_id);local.setFk_type(fk_type);local.setFk_source(fk_source);local.setFk_info(fk_info);local.setFk_name(fk_name);local.setFk_bank_name(fk_bank_name);local.setFk_bank_acct(fk_bank_acct);local.setSk_name(sk_name);local.setSk_bank_name(sk_bank_name);local.setSk_bank_acct(sk_bank_acct);local.setFk_money(fk_money);local.setFk_summary(fk_summary);local.setFk_date(fk_date);local.setInput_man(input_operatorCode);local.addFinacialcardInfoGuotou();out.clear();response.getWriter().write("1");}catch(Exception e){out.clear();response.getWriter().write(e.getMessage());}%>

這時候我接受到的數據會是中文亂碼,不管傳輸方式是get,還是post都會中文亂碼

解決方案:

  我們可以在傳輸時對數據重新編碼,然后在接受數據時重新解碼。其實亂碼的問題就是編碼格式沖突,導致解碼的密鑰對之前格式解析錯誤,導致亂碼。在傳輸時,在需要傳輸中文數據前面加一個encodeURI()編碼,例如:encodeURI(j$("#fk_info").val());在接受需要中文數據的前面加一個java.net.URLDecoder.decode(value, "UTF-8"),例如
String fk_bank_name = Utility.trimNull(request.getParameter("fk_bank_name")); String trans = java.net.URLDecoder.decode(fk_bank_name, "UTF-8");
具體修改后的全部代碼如下:

修復后ajax傳輸的代碼:

function saveForm(){if(document.theformadd.onsubmit()){disableAllBtn(true);j$.ajax({type:"get",url:"add_form_do.jsp",data:{problem_id : j$("#problem_id").val(),product_id : "<%=product_id%>",productId : j$("#productId").val(),depart_id : j$("#depart_id").val(),fk_busi_id : j$("#fk_busi_id").val(),fk_type : j$("#fk_type").val(),fk_source : j$("#fk_source").val(),fk_info : encodeURI(j$("#fk_info").val()),fk_name : encodeURI(j$("#fk_name").val()),fk_bank_name : encodeURI(j$("#fk_bank_name").val()),fk_bank_acct : encodeURI(j$("#fk_bank_acct").val()),sk_name : encodeURI(j$("#sk_name").val()),sk_bank_name : encodeURI(j$("#sk_bank_name").val()),sk_bank_acct : encodeURI(j$("#sk_bank_acct").val()),fk_money : j$("#fk_money").val(),fk_summary : encodeURI(j$("#fk_summary").val()),fk_date : j$("#fk_date").val(),input_man : "<%=input_operatorCode%>"},success:function(ret){if(ret == 1) {sl_alert("保存成功!");}else{sl_alert(ret);}window.returnValue=true;window.close();}});}}

修復后add_form_do.jsp中獲取數據:

<%@ page contentType="text/html; charset=GBK" import="java.math.*,com.enfo.intrust.intrust.vo.*,java.io.*, com.enfo.intrust.web.*,java.util.*,com.enfo.intrust.dao.*,com.enfo.intrust.intrust.*,com.enfo.intrust.tools.*,com.enfo.intrust.project.*" %><script type="text/javascript" src="<%=request.getContextPath()%>/ext2.0/ext-base.js"></script><script type="text/javascript" src="<%=request.getContextPath()%>/ext2.0/ext-all.js"></script><%@ include file="/includes/operator.inc" %><%try{product_id = Utility.parseInt(Utility.trimNull(request.getParameter("product_id")),product_id);UnpostwarrantLocal local = EJBFactory.getUnpostwarrant();Integer problem_id = Utility.parseInt(request.getParameter("problem_id"),new Integer(0));Integer depart_id = Utility.parseInt(request.getParameter("depart_id"),new Integer(0)); //部門Integer productId = Utility.parseInt(Utility.trimNull(request.getParameter("productId")),product_id);String fk_busi_id = Utility.trimNull(request.getParameter("fk_busi_id")); //字典1206 費用String fk_type = Utility.trimNull(request.getParameter("fk_type")); //付款方式 2103String fk_source = Utility.trimNull(request.getParameter("fk_source")); //付款依據 2104String fk_info = Utility.trimNull(request.getParameter("fk_info")); //票據號碼String fk_name = Utility.trimNull(request.getParameter("fk_name")); //付款單位String fk_bank_name = Utility.trimNull(request.getParameter("fk_bank_name")); //付款銀行名稱String fk_bank_acct = Utility.trimNull(request.getParameter("fk_bank_acct")); //付款銀行賬號String sk_name = Utility.trimNull(request.getParameter("sk_name")); //收款單位String sk_bank_name = Utility.trimNull(request.getParameter("sk_bank_name")); //收款銀行名稱String sk_bank_acct = Utility.trimNull(request.getParameter("sk_bank_acct")); //收款銀行賬號BigDecimal fk_money = Utility.parseDecimal(Utility.trimNull(request.getParameter("fk_money")).replaceAll(",",""),new BigDecimal(0)); //金額String fk_summary = Utility.trimNull(request.getParameter("fk_summary")); //備注Integer fk_date = Utility.parseInt(request.getParameter("fk_date"),new Integer(Utility.getCurrentDate())); //要求付款日期local.setProblem_id(problem_id);//local.setProduct_id(product_id);local.setProduct_id(productId);local.setDepart_id(depart_id);local.setFk_busi_id(fk_busi_id);local.setFk_type(fk_type);local.setFk_source(fk_source);local.setFk_info(java.net.URLDecoder.decode(fk_info, "UTF-8"));local.setFk_name(java.net.URLDecoder.decode(fk_name, "UTF-8"));local.setFk_bank_name(java.net.URLDecoder.decode(fk_bank_name, "UTF-8"));local.setFk_bank_acct(java.net.URLDecoder.decode(fk_bank_acct, "UTF-8"));local.setSk_name(java.net.URLDecoder.decode(sk_name, "UTF-8"));local.setSk_bank_name(java.net.URLDecoder.decode(sk_bank_name, "UTF-8"));local.setSk_bank_acct(java.net.URLDecoder.decode(sk_bank_acct, "UTF-8"));local.setFk_money(fk_money);local.setFk_summary(java.net.URLDecoder.decode(fk_summary, "UTF-8"));local.setFk_date(fk_date);local.setInput_man(input_operatorCode);local.addFinacialcardInfoGuotou();out.clear();response.getWriter().write("1");}catch(Exception e){out.clear();response.getWriter().write(e.getMessage());}%>

注意事項:

  如果是接受數據不是jsp頁面,而是Java類的時候,只需要URLDecoder.decode(value, "UTF-8");來解碼,然后導入相應的包。還有傳輸時可能需要兩次編碼encodeURI(encodeURI(j$("#fk_info").val())),具體原因是我們通過request.getParameter()來獲取數據時就會進行一次解碼操作,解碼時不變。

  上文就是關于Ajax傳輸中文亂碼怎么辦的內容,本文非常具有參考借鑒價值,需要的朋友可以參考下。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久aaaa九色| 亚洲国产精品va在线看黑人| 91久久精品日日躁夜夜躁国产| 青草成人免费视频| 欧美成人亚洲成人| 久久99久久久久久久噜噜| 日韩欧美国产中文字幕| 狠狠躁夜夜躁久久躁别揉| 久久久久日韩精品久久久男男| 日本精品一区二区三区在线播放视频| 久久免费精品日本久久中文字幕| 久久久综合免费视频| 国产精品96久久久久久又黄又硬| 成人性教育视频在线观看| 亚洲欧美日韩视频一区| 亚洲国产女人aaa毛片在线| 美女久久久久久久| 久久久久久一区二区三区| 精品国产一区二区三区久久| 国产精品2018| 午夜精品福利在线观看| 国产成人精品国内自产拍免费看| 精品日韩美女的视频高清| 日韩视频中文字幕| 亚洲一区二区免费在线| 日韩中文字幕精品| 欧美激情一级欧美精品| 亚洲最大福利视频网| 91日韩在线视频| 永久免费精品影视网站| 日韩一区二区在线视频| 欧美日韩黄色大片| 亚洲人成电影网站色| 欧美激情成人在线视频| 国产亚洲精品91在线| 日韩电影中文字幕在线观看| www.久久撸.com| 亚洲欧美变态国产另类| 亚洲理论片在线观看| 欧美丰满少妇xxxxx做受| 成人在线观看视频网站| 日韩高清av一区二区三区| 欧美性猛交xxxx久久久| 亚洲图片制服诱惑| 欧美激情精品久久久久| 亚洲人成网站色ww在线| 欧美日韩激情小视频| 国产精品久久久久久久久久久久久久| 热久久这里只有| 亚洲视频777| 亚洲人午夜精品| 欧美日韩国产91| 欧美最顶级丰满的aⅴ艳星| 欧美性猛交xxxxx水多| 日韩av片永久免费网站| 欧美日韩视频免费播放| 精品国产精品自拍| 成人黄色中文字幕| 欧美性开放视频| 91爱视频在线| 欧美黑人性猛交| 国产噜噜噜噜久久久久久久久| 国产精品久久中文| 欧美成人中文字幕在线| 日韩av资源在线播放| 日韩美女av在线| 精品自拍视频在线观看| 亚洲japanese制服美女| 免费av一区二区| 91久久久久久久久久| 亚洲精品久久久久久久久久久| 欧美成aaa人片在线观看蜜臀| 国产精品美女久久久久久免费| 高跟丝袜一区二区三区| 精品小视频在线| 欧美在线视频一二三| 成人有码视频在线播放| 国产精品中文字幕久久久| 久久在精品线影院精品国产| xxx成人少妇69| 日韩欧美国产激情| 国产精品极品尤物在线观看| 亚洲欧美激情在线视频| 亚洲网址你懂得| 久久久久日韩精品久久久男男| 日韩在线视频免费观看高清中文| 国产精品第一视频| 亚洲精品久久久久国产| 91嫩草在线视频| 日韩精品有码在线观看| 国产日韩在线亚洲字幕中文| 成人h猎奇视频网站| 中文字幕国产亚洲| 久久久国产精品亚洲一区| 搡老女人一区二区三区视频tv| 国产精品久久久久久久午夜| 亚洲人成在线电影| 成人精品久久一区二区三区| 成人久久一区二区三区| 韩日欧美一区二区| 国产成人高清激情视频在线观看| 91精品国产综合久久香蕉的用户体验| 91情侣偷在线精品国产| 有码中文亚洲精品| 国内精品400部情侣激情| 亚洲人成在线观看网站高清| 高清欧美性猛交xxxx| 性欧美在线看片a免费观看| 国产精品成人久久久久| 国产日韩在线一区| 日韩中文字幕视频在线| 国产69精品99久久久久久宅男| 国产一区欧美二区三区| 在线丨暗呦小u女国产精品| 久久天堂av综合合色| 国产欧美日韩亚洲精品| 亚洲欧美国产日韩天堂区| 欧美电影免费观看大全| 成人久久一区二区三区| 欧美丝袜美女中出在线| 国产精品盗摄久久久| 红桃视频成人在线观看| 国产一区二区三区日韩欧美| 久久久久国产一区二区三区| 欧美日韩裸体免费视频| 久久综合电影一区| 国产精品扒开腿做爽爽爽男男| 欧美天堂在线观看| 91国内在线视频| 欧美性69xxxx肥| 激情亚洲一区二区三区四区| 日韩精品中文字幕有码专区| zzjj国产精品一区二区| 国产精品久久久久久亚洲影视| 国产成人精品网站| 国产成人精品在线视频| 日韩美女免费观看| 在线观看日韩av| 亚洲第一福利视频| 成人国产精品久久久久久亚洲| 亚洲成人1234| 久久久久久国产精品三级玉女聊斋| 激情成人中文字幕| 久久久久中文字幕| 韩国v欧美v日本v亚洲| 激情懂色av一区av二区av| 日本成人黄色片| 欧美在线视频网站| 国产日韩欧美电影在线观看| 538国产精品一区二区在线| 亚洲深夜福利网站| 欧美极品少妇与黑人| 亚洲美女福利视频网站| 欧美专区中文字幕| 色综合视频网站| 日本成人黄色片| 欧美噜噜久久久xxx| 久久精品夜夜夜夜夜久久| 91九色国产在线| 欧美国产日本在线| 2019亚洲男人天堂| 久久亚洲欧美日韩精品专区| 国产精品福利在线观看| 欧美日韩亚洲激情|