需求:需要先将搜索的汉字转Unicode, 然后键值对转为json ,再base64加密 传给后端
1.中文转unicode
this.keyword = this.unicode(searchtext)
// \u590d\u5408\u7ba1
转unicode方法:
unicode(str) {
var value = ''
for (var i = 0; i < str.length; i++) {
value +=
'\\u' + this.left_zero_4(parseInt(str.charCodeAt(i)).toString(16))
}
return value
},
left_zero_4(str) {
if (str != null && str != '' && str != 'undefined') {
if (str.length == 2) {
return '00' + str
}
}
return str
},
- JSON.stringify 转json字符串之后会多一个斜杠\
this.yy = JSON.stringify({
keywords: this.keyword,
})
// "keywords":"\\u590d\\u5408\\u7ba1"
3.Base64加密json字符串 导致接口传参 后端识别不出来 因为多了一个\
Base64.encode(this.yy)
Base64方法:
npm install --save js-base64 //下载
import Base64 from 'base-64' //引入
Base64.encode(this.pwd);//加密
Base64.decode(this.pwd);//解密
解决:就出在json转之后会多一个\,用正则都替换解决不了,最后只能手动拼接成json。
this.yy = `{"keywords":"${this.keyword}"}`