yj.微信小程序 接收蓝牙设备返回的16进制数据转为中文显示问题
在此记录遇到的问题,若遇到同样的问题,希望可以帮到各位。
我从蓝牙设备获取的数据为16进制 需要转为中文 同样还有另一种16进制 unicode16进制数据 搜索的大部分都是直接转换的方法 我都一一尝试 可能是搜索的姿势不对吧 只好自己解决咯 咬牙切齿骂c开发
首先将我获取的16进制全部转为 2进制 啊哈哈哈 我不知道有没有快捷的函数转法 反正我是自己写的
//16进制转2进制
changeTobinary: function (temperature) {
var charary = ['1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
var numary = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
var binarynum = '';
// 检索对应16进制的值
for (var i = 0; i < temperature.length; i++) {
var num = 0;
var cons = temperature.substring(i, i + 1)
for (var t = 0; t < charary.length; t++) {
if (cons == charary[t]) {
num = numary[t];
}
}
var binary = '';
while (num > 0) {
var yu = num % 2;
num = parseInt(num / 2);
binary = yu + binary;
}
while (binary.length < 4) {
binary = '0' + binary;
}
binarynum = binarynum + binary;
}
while (binarynum.length < 8) {
binarynum = '0' + binarynum;
}
var splthree = '';
splthree = binarynum;
return splthree;
},
别问我啥意思 写完之后 我就忘了啥意思 哈哈哈
这里是我最纠结的东西了
2进制转unicode2进制
以及unicode2进制转unicode16进制 最后转为中文 直接上代码
utf8changeunicode: function (binarylist) {
var endindex = 0;//判断需要循环几次后存入数据
var binarylistcope = [];//存储处理后的数据
var endbinarycope = '';//存储处理后的数据
// 循环取出数组中的二进制
var i = 0;
while (i < binarylist.length) {
// 循环判断字符串否和标准
var t = 0;//计数t
var str = binarylist[i];
while (t < str.length) {
var index = str.substring(t, t + 1);
// 如果符合规则 = 1 计数+1 否则跳出判断
if (index == 0) {
break;
}
else {
t++;
}
}
var end = t + 1; //判断需要截取的index
if (endindex == 0) {
endindex = t;
endbinarycope = '';
}
var endstr = str.substring(end, str.length);
if (endindex == 1) {
endbinarycope += endstr;
binarylistcope.push(endbinarycope);
endindex--;
}
else if (endindex == 0) {
endbinarycope += endstr;
binarylistcope.push(endbinarycope);
}
else {
endbinarycope += endstr;
endindex--;
}
i++
}
var unicodelist = this.changehexadecimal(binarylistcope);
console.log(unicodelist);
var stringlist = [];
for (var a = 0; a < unicodelist.length; a++) {
while (unicodelist[a].length < 4) {
unicodelist[a] = '0' + unicodelist[a];
}
stringlist.push('\\u' + unicodelist[a]);
}
console.log(stringlist);
var namedev = '{"str":"';
for (var i = 0; i < stringlist.length; i++) {
namedev += stringlist[i];
}
namedev = namedev + '"}';
//此处进行字符串输出
return JSON.parse(namedev).str
},
更具评论的大兄弟要求:此处转为16进制方法
changehexadecimal: function (binarylist) {
var charary = ['1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
var numary = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
var endlist = [];
for (var i = 0; i < binarylist.length; i++) {
var str = binarylist[i];
var numb = str.length;
while (numb % 4 != 0) {
str = '0' + str;
numb = str.length;
}
var endstr = '';
for (var t = 0; t < str.length / 4; t++) {
var cons = str.substring(t * 4, t * 4 + 4);
var cc = 0;
for (var k = 0; k < cons.length; k++) {
var cont = parseInt(cons.substring(k, k + 1));
var num = cons.length - k - 1;
var kf = 2;
if (num == 0) {
kf = 1;
}
else if (num == 1) {
kf = 2;
}
else {
while (num - 1 >= 1) {
kf = 2 * kf;
--num;
}
}
cc = kf * cont + cc;
}
for (var k = 0; k < numary.length; k++) {
if (cc == numary[k]) {
cc = charary[k];
}
}
endstr += cc;
}
endlist.push(endstr)
}
return endlist;
},
到此记录完成
yj.微信小程序 接收蓝牙设备返回的16进制数据转为中文显示问题相关推荐
- Python3小程序:把连续的16进制UTF8编码转换为字符串
# coding: utf-8 ''' 参考用 mystery = b"\xe5\x88\xab" x = mystery.decode('utf-8') print(x)y = ...
- 微信小程序蓝牙BLE开发——写入一串16进制数据,低字节在前(五)
微信小程序BLE发送一串16进制数据,低字节在前 文章目录 微信小程序BLE发送一串16进制数据,低字节在前 场景 获取UTC时间 写入数据 向设备发送16进制数据 字节转换 验证发送UTC时间 场景 ...
- 隐藏微信小程序左上角的返回或home按钮 wx.hideHomeButton
隐藏微信小程序左上角的返回或home按钮 用的是 wx.hideHomeButton方法,但是这个方法是有限制的,管网说得又不清不楚,在百度也找不到相关的问题 在用这个方法的时候遇到过很多问题和官方 ...
- uniapp/微信小程序获取蓝牙设备
uniapp/微信小程序获取蓝牙设备 view script style 此文章只是获取蓝牙设备,不涉及连接设备,连接设备敬请期待!!! view <u-navbar :is-back=&quo ...
- 微信小程序开发之scroll-view上拉加载数据实现
微信小程序开发之scroll-view上拉加载数据实现 一.开发思路 1.使用小程序的scroll-view组件中提供了一个bindscrolltolower属性监听组件的滑动到了底部 https:/ ...
- 微信小程序,实现 watch 属性,监听数据变化
转自微信小程序,实现 watch 属性,监听数据变化 目标 在微信小程序实现 watch 属性,监听 data 中的属性,当被监听属性的值改变时,执行我们指定的方法. 思路 Vue 的 compu ...
- 微信小程序:和平精英吃鸡捏脸数据助手微信小程序源码下载支持激励视频
这是一款捏脸数据的助手 内包含了N款明星捏脸数据和各位大咖的数据 这款小程序支持激励视频广告 用户看广告然后复制数据到和平精英里面就可以给人物换脸了 小程序里面也有教用户操作的教程 安装方法: 使用微 ...
- 微信小程序上线后,苹果手机请求不到数据,安卓可以
微信小程序上线后,苹果手机请求不到数据,安卓可以 首先说明一下我的小程序页面是嵌入的网页--webview,在网页里面,会有各种网络请求,上线后,安卓手机测试没有问题,苹果手机能加载到页面,但是没有请 ...
- python3.6串口编程实例_Python3 串口接收与发送16进制数据包的实例
Python3 串口接收与发送16进制数据包的实例 如下所示: import serial import string import binascii s=serial.Serial('com4',9 ...
最新文章
- 【原创】leetCodeOj ---Convert Sorted List to Binary Search Tree 解题报告
- [js] 写一个方法获取图片的方向
- web靶机:kali linux 2.0下搭建DVWA渗透测试演练平台
- Java基础---内部类详解
- java下载网页所有图片_java 下载网页,图片 | 学步园
- 输入一行数字、数字之间用空格隔开python_Python 实现一行输入多个数字(用空格隔开)...
- 从假装在腾讯,到真的360 —— 一个应届准PM的独白(面经干货)
- 如何玩转抖音吸粉引流,老路子新热点照样1000+
- 披萨门 pizzagate
- 小程序 滚动加载分页处理【亲测有效】
- Slove the {Failed to load unit 'HGCM' (VERR_INVALID_PARAMETER)}
- 【渝粤教育】国家开放大学2018年秋季 1318T社会统计学 参考试题
- 声学模型(语音识别中的)--学习笔记
- 100%BIM学员的疑惑:不会CAD可以学Revit吗?
- 什么是OJ _OJ是什么?
- 部署haproxy代理,搭建基于nginx的高性能反向代理群集
- 阿尔法小蛋机器人热点密码_科大讯飞阿尔法小蛋智能机器人使用说明
- 电动汽车 simulink仿真模型, 可进行整车动力性仿真测试(最高车速,最大爬坡,加入时间)和NEDC工况能耗测试
- 爬取千库网ppt_前程无忧爬虫、数据清洗及可视化
- android操作系统详细目录结构