bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Ajax傳輸中文亂碼問(wèn)題怎么解決-創(chuàng)新互聯(lián)

這篇文章主要介紹“Ajax傳輸中文亂碼問(wèn)題怎么解決”,在日常操作中,相信很多人在Ajax傳輸中文亂碼問(wèn)題怎么解決問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Ajax傳輸中文亂碼問(wèn)題怎么解決”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

10年積累的網(wǎng)站建設(shè)、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶(hù)對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶(hù)得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先制作網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有七里河免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

AJAX簡(jiǎn)介

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

AJAX 不是新的編程語(yǔ)言,而是一種使用現(xiàn)有標(biāo)準(zhǔn)的新方法。

AJAX 是與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁(yè)的藝術(shù),在不重新加載整個(gè)頁(yè)面的情況下。

ajax傳輸中文亂碼問(wèn)題描述:


我是在一個(gè)jsp頁(yè)面有一個(gè)保存按鈕,點(diǎn)擊時(shí)會(huì)觸發(fā)saveForm()的js函數(shù),在saveForm()函數(shù)里經(jīng)過(guò)校驗(yàn)后,會(huì)通過(guò)ajax發(fā)送數(shù)據(jù)請(qǐng)求,這樣就不用通過(guò)提交表單來(lái)傳輸數(shù)據(jù)了,ajax估計(jì)就是這樣的好處吧,目前對(duì)ajax還不太熟悉。


ajax傳輸亂碼時(shí)的代碼:

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();
}
});
}
}

然后我們?cè)赼dd_form_do.jsp中獲取數(shù)據(jù)

<%@ 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)); //部門(mén)
Integer productId = Utility.parseInt(Utility.trimNull(request.getParameter("productId")),product_id);
String fk_busi_id = Utility.trimNull(request.getParameter("fk_busi_id")); //字典1206 費(fèi)用
String fk_type = Utility.trimNull(request.getParameter("fk_type")); //付款方式 2103
String fk_source = Utility.trimNull(request.getParameter("fk_source")); //付款依據(jù) 2104
String fk_info = Utility.trimNull(request.getParameter("fk_info")); //票據(jù)號(hào)碼
String fk_name = Utility.trimNull(request.getParameter("fk_name")); //付款單位
String fk_bank_name = Utility.trimNull(request.getParameter("fk_bank_name")); //付款銀行名稱(chēng)
String fk_bank_acct = Utility.trimNull(request.getParameter("fk_bank_acct")); //付款銀行賬號(hào)
String sk_name = Utility.trimNull(request.getParameter("sk_name")); //收款單位
String sk_bank_name = Utility.trimNull(request.getParameter("sk_bank_name")); //收款銀行名稱(chēng)
String sk_bank_acct = Utility.trimNull(request.getParameter("sk_bank_acct")); //收款銀行賬號(hào)
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());
}
%>

這時(shí)候我接受到的數(shù)據(jù)會(huì)是中文亂碼,不管傳輸方式是get,還是post都會(huì)中文亂碼


解決方案:


我們可以在傳輸時(shí)對(duì)數(shù)據(jù)重新編碼,然后在接受數(shù)據(jù)時(shí)重新解碼。其實(shí)亂碼的問(wèn)題就是編碼格式?jīng)_突,導(dǎo)致解碼的密鑰對(duì)之前格式解析錯(cuò)誤,導(dǎo)致亂碼。在傳輸時(shí),在需要傳輸中文數(shù)據(jù)前面加一個(gè)encodeURI()編碼,例如:encodeURI(j$("#fk_info").val());在接受需要中文數(shù)據(jù)的前面加一個(gè)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");
具體修改后的全部代碼如下:


修復(fù)后ajax傳輸?shù)拇a:

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();
}
});
}
}

修復(fù)后add_form_do.jsp中獲取數(shù)據(jù):

<%@ 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)); //部門(mén)
Integer productId = Utility.parseInt(Utility.trimNull(request.getParameter("productId")),product_id);
String fk_busi_id = Utility.trimNull(request.getParameter("fk_busi_id")); //字典1206 費(fèi)用
String fk_type = Utility.trimNull(request.getParameter("fk_type")); //付款方式 2103
String fk_source = Utility.trimNull(request.getParameter("fk_source")); //付款依據(jù) 2104
String fk_info = Utility.trimNull(request.getParameter("fk_info")); //票據(jù)號(hào)碼
String fk_name = Utility.trimNull(request.getParameter("fk_name")); //付款單位
String fk_bank_name = Utility.trimNull(request.getParameter("fk_bank_name")); //付款銀行名稱(chēng)
String fk_bank_acct = Utility.trimNull(request.getParameter("fk_bank_acct")); //付款銀行賬號(hào)
String sk_name = Utility.trimNull(request.getParameter("sk_name")); //收款單位
String sk_bank_name = Utility.trimNull(request.getParameter("sk_bank_name")); //收款銀行名稱(chēng)
String sk_bank_acct = Utility.trimNull(request.getParameter("sk_bank_acct")); //收款銀行賬號(hào)
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());
}
%>

注意事項(xiàng):


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


到此,關(guān)于“Ajax傳輸中文亂碼問(wèn)題怎么解決”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

新聞名稱(chēng):Ajax傳輸中文亂碼問(wèn)題怎么解決-創(chuàng)新互聯(lián)
文章路徑:http://vcdvsql.cn/article28/dgohjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航服務(wù)器托管企業(yè)網(wǎng)站制作網(wǎng)站維護(hù)定制開(kāi)發(fā)ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)