微信小程序中对于蓝牙通讯数据处理常用的工具函数

一、十六进制转字符串

c 复制代码
export const hexToStr = function(hex, encoding) {
	var trimedStr = hex.trim();
	var rawStr = trimedStr.substr(0, 2).toLowerCase() === "0x" ? trimedStr.substr(2) : trimedStr;
	var len = rawStr.length;

	var curCharCode;
	var resultStr = [];
	for (var i = 0; i < len; i = i + 2) {
		curCharCode = parseInt(rawStr.substr(i, 2), 16);
		resultStr.push(curCharCode);
	}
	var val = "";
	var arr = resultStr;
	for (let i = 0; i < arr.length; i++) {
		val += String.fromCharCode(arr[i]);
	}
	return val;
}

二、十进制转16进制

c 复制代码
export const tenToHex = (num, digit = 4) => {
	const hex = num.toString(16);
	return hex.padStart(digit, 0);
}

三、字符串转16进制

c 复制代码
export const stringToHex = (str) =>{
	var val = "";
	for (var i = 0; i < str.length; i++) {
		if (val == "") {
			val = str.charCodeAt(i).toString(16); //获取字符的Unicode码然后转16进制
		} else {
			val += str.charCodeAt(i).toString(16); //获取字符的Unicode码然后转16进制再拼接,中间用逗号隔开
		}
	}
	return val;
}

四、arrayBuffer转16进制字符串

c 复制代码
export const arrayBufferToHexString = (buffer) => {
	const hexArr = Array.prototype.map.call(
		new Uint8Array(buffer),
		function(bit) {
			return ('00' + bit.toString(16)).slice(-2)
		}
	)
	return hexArr.join('').toUpperCase();
}

五、十六进制字符串转ArrayBuffer

c 复制代码
export let hexStringToArrayBuffer = (str) => {
	//十六进制转ArrayBuffer
	return new Uint8Array(str.match(/[\da-f]{2}/gi).map(function(h) {
		return parseInt(h, 16)
	})).buffer
}

六、十六进制转GB2312

c 复制代码
npm install iconv-lite
c 复制代码
 export let hexToGb2312 = (hexString)=> {
  const buffer = Buffer.from(hexString, 'hex');
  const decodedString = iconv.decode(buffer, 'GB2312');
  return decodedString;
}
相关推荐
CHU7290351 小时前
生鲜团购商城小程序:新鲜触手可及的便捷购物新体验
小程序
医疗信息化王工7 小时前
钉钉小程序开发实战:手术查询小程序
小程序·钉钉·手术查询
软件开发技术9 小时前
新版点微同城主题源码34.7+全套插件+小程序前后端 源文件
小程序·php
mon_star°1 天前
消防安全培训小程序项目亮点与功能清单
小程序
自然 醒1 天前
uni-app开发微信小程序,如何使用towxml去渲染md格式和html标签格式的内容?
微信小程序·uni-app·html
编程迪1 天前
基于Java和Vue开发的在线问诊系统医疗咨询小程序APP
小程序
CHU7290351 天前
知识触手可及:在线教学课堂APP的沉浸式学习体验
前端·学习·小程序
竟未曾年少轻狂1 天前
微信小程序-组件开发
微信小程序·小程序
CHU7290351 天前
在线教学课堂APP功能版块设计方案:重构学习场景的交互逻辑
java·学习·小程序·重构
焦糖玛奇朵婷1 天前
盲盒小程序开发,盲盒小程序怎么做
java·大数据·服务器·前端·小程序