问题:项目中前端写一个公式(类似1+1=2)传到后端处理,结果后端接收到的一直是一些乱码,然后发现可能是一些符号(貌似是+、-号)引起的。
处理办法:在前端对要传输的JSON先用encodeURIComponent() 函数进行编码,然后后端再用
URLDecoder.decode进行解码,就解决了。
前端代码:
//this.form就是一个JSON格式数据
addAlarmevent(this.form)).then(response => {
if(response.code === 200){
this.msgSuccess("操作成功");
this.close();
}
})
//处理后的代码
addAlarmevent(encodeURIComponent(JSON.stringify(this.form))).then(response => {
if(response.code === 200){
this.msgSuccess("操作成功");
this.close();
}
})
后端代码:
AlarmEvent alarmEvent = null;
try {
//这一步做解码操作,将解码后的数据转换成一个对象
alarmEvent = JSONObject.parseObject(URLDecoder.decode(alarmEvent1,"UTF-8"),AlarmEvent.class) ;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}