您好,登錄后才能下訂單哦!
#------------------------------2019-02-19日更新---------------------------
剛寫了一個接口,通過shell的curl往nodejs郵件接口提交數據,然后發送郵件,格式如下:
curl --connect-timeout 5 -m 10 -G "https://xx.xxx.com/interface?ac=mail&&subject=賬號信息&text=(xxx)您的賬號為:xxxx,密碼為:xxxx,請妥善保管您本人的賬號密碼!&toUser=$user"
接收到的信息為:
subject,text,toUser: ***è′|??·?????ˉ (xxx)??¨???***è′|??·??o??¨????????o??·,?ˉ??????o:xxx,èˉ·?|¥???????????¨????oo???′|??·?ˉ????,?|??ˉ?,xxx@xxx.com
這時我們就要用到下面說到的方法:
decodeURI(decodeURIComponent(escape(text)), "UTF-8")
就不會是亂碼了:
text: (xxx)您的賬號為:xxxx,密碼為:xxxx,請妥善保管您本人的賬號密碼!
#########################
在ajax提交數據時,由于中文全角字符等等問題導致服務器端接收到后顯示亂碼,具體表現為:\u00000\u000023等等(我本身想還原一下錯誤場景,盡然出現不了了,等下次在出現的時候,我在把亂碼貼出來,下面具體講解決方法):
細節原因不解釋,自己可以去百度
亂碼:
var n = $("#id").html();
$.ajax({
type: 'post',
dataType: 'json',
url: '/',
contentType: "application/x-www-form-urlencoded; charset=utf-8",
data: n,
success: function(data) {
console.log(data);
}
});
解決后:
var n = $("#id").html();
var _n = encodeURIComponent((encodeURI(n, "UTF-8")));
$.ajax({
type: 'post',
dataType: 'json',
url: '/',
contentType: "application/x-www-form-urlencoded; charset=utf-8",
data: _n,
success: function(data) {
console.log(data);
}
});
其實就加了encodeURIComponent encodeURI
在服務器端解碼:
decodeURI(decodeURIComponent(escape(bodys)), "UTF-8")
順便記錄一下js在encode之后post提交到nodejs后端的時候,nodejs報413錯誤,其實修改方法很簡單,修改下面兩行即可(50m是不是有點大呀......):
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。