js处理中文乱码记录/nodejs+express error 413
#------------------------------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)æ¨ç***è´¦å·ä¸ºæ¨çææºå·,å¯ç 为:xxx,请妥åä¿ç®¡æ¨æ¬äººç´¦å·å¯ç ,å¦å¯,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}));
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。