js處理中文亂碼記錄/nodejs+express error 413

在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}));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章