开发过程中总是有些乱七八糟的数据,特别是对接设备的时候
今天就分享一下个人项目开发中使用到的数据转换方法
有需要的小伙伴自取
string2buffer (str) {
return new Uint8Array(
str.match(/[\da-f]{2}/gi).map(function (h) {
return parseInt(h, 16);
})
).buffer;
},
buf2str (buffer) {
let encodedString = String.fromCodePoint.apply(
null,
new Uint8Array(buffer)
);
let decodedString = decodeURIComponent(escape(encodedString));
return decodedString;
},
ab2hex (buffer) {
var hexArr = Array.prototype.map.call(
new Uint8Array(buffer),
function (bit) {
return ("00" + bit.toString(16)).slice(-2);
}
);
return hexArr.join(",");
},
hexstr (str) {
var _this = this;
var arr = str.split("0d");
var arr3 = [];
var obj = {};
var arr1 = [];
var reg = new RegExp(",", "g");
arr.forEach((element) => {
arr3.push(_this.hex2str(element.replace(reg, "")));
});
arr3.forEach((element) => {
for (let index = 0; index < element.length; index++) {
if (element[index] == ":") {
var namea = element.substring(0, index);
var valueA = element.substring(index + 1, element.length);
obj[namea] = valueA;
arr1.push(obj);
}
}
});
uni.hideLoading();
return arr1[0];
},
hex2str (str) {
var len = str.length / 2;
var result = "";
for (var i = 0; i < len; i++) {
let data = str.substring(i * 2, i * 2 + 2);
result += String.fromCharCode(parseInt(data, 16));
}
return decodeURIComponent(escape(result));
},