在此记录遇到的问题,若遇到同样的问题,希望可以帮到各位。

我从蓝牙设备获取的数据为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进制数据转为中文显示问题相关推荐

  1. Python3小程序:把连续的16进制UTF8编码转换为字符串

    # coding: utf-8 ''' 参考用 mystery = b"\xe5\x88\xab" x = mystery.decode('utf-8') print(x)y = ...

  2. 微信小程序蓝牙BLE开发——写入一串16进制数据,低字节在前(五)

    微信小程序BLE发送一串16进制数据,低字节在前 文章目录 微信小程序BLE发送一串16进制数据,低字节在前 场景 获取UTC时间 写入数据 向设备发送16进制数据 字节转换 验证发送UTC时间 场景 ...

  3. 隐藏微信小程序左上角的返回或home按钮 wx.hideHomeButton

    隐藏微信小程序左上角的返回或home按钮  用的是 wx.hideHomeButton方法,但是这个方法是有限制的,管网说得又不清不楚,在百度也找不到相关的问题 在用这个方法的时候遇到过很多问题和官方 ...

  4. uniapp/微信小程序获取蓝牙设备

    uniapp/微信小程序获取蓝牙设备 view script style 此文章只是获取蓝牙设备,不涉及连接设备,连接设备敬请期待!!! view <u-navbar :is-back=&quo ...

  5. 微信小程序开发之scroll-view上拉加载数据实现

    微信小程序开发之scroll-view上拉加载数据实现 一.开发思路 1.使用小程序的scroll-view组件中提供了一个bindscrolltolower属性监听组件的滑动到了底部 https:/ ...

  6. 微信小程序,实现 watch 属性,监听数据变化

    转自微信小程序,实现 watch 属性,监听数据变化 目标 在微信小程序实现 watch 属性,监听 data 中的属性,当被监听属性的值改变时,执行我们指定的方法.​​ 思路 Vue 的 compu ...

  7. 微信小程序:和平精英吃鸡捏脸数据助手微信小程序源码下载支持激励视频

    这是一款捏脸数据的助手 内包含了N款明星捏脸数据和各位大咖的数据 这款小程序支持激励视频广告 用户看广告然后复制数据到和平精英里面就可以给人物换脸了 小程序里面也有教用户操作的教程 安装方法: 使用微 ...

  8. 微信小程序上线后,苹果手机请求不到数据,安卓可以

    微信小程序上线后,苹果手机请求不到数据,安卓可以 首先说明一下我的小程序页面是嵌入的网页--webview,在网页里面,会有各种网络请求,上线后,安卓手机测试没有问题,苹果手机能加载到页面,但是没有请 ...

  9. python3.6串口编程实例_Python3 串口接收与发送16进制数据包的实例

    Python3 串口接收与发送16进制数据包的实例 如下所示: import serial import string import binascii s=serial.Serial('com4',9 ...

最新文章

  1. 【原创】leetCodeOj ---Convert Sorted List to Binary Search Tree 解题报告
  2. [js] 写一个方法获取图片的方向
  3. web靶机:kali linux 2.0下搭建DVWA渗透测试演练平台
  4. Java基础---内部类详解
  5. java下载网页所有图片_java 下载网页,图片 | 学步园
  6. 输入一行数字、数字之间用空格隔开python_Python 实现一行输入多个数字(用空格隔开)...
  7. 从假装在腾讯,到真的360 —— 一个应届准PM的独白(面经干货)
  8. 如何玩转抖音吸粉引流,老路子新热点照样1000+
  9. 披萨门 pizzagate
  10. 小程序 滚动加载分页处理【亲测有效】
  11. Slove the {Failed to load unit 'HGCM' (VERR_INVALID_PARAMETER)}
  12. 【渝粤教育】国家开放大学2018年秋季 1318T社会统计学 参考试题
  13. 声学模型(语音识别中的)--学习笔记
  14. 100%BIM学员的疑惑:不会CAD可以学Revit吗?
  15. 什么是OJ _OJ是什么?
  16. 部署haproxy代理,搭建基于nginx的高性能反向代理群集
  17. 阿尔法小蛋机器人热点密码_科大讯飞阿尔法小蛋智能机器人使用说明
  18. 电动汽车 simulink仿真模型, 可进行整车动力性仿真测试(最高车速,最大爬坡,加入时间)和NEDC工况能耗测试
  19. 爬取千库网ppt_前程无忧爬虫、数据清洗及可视化
  20. android操作系统详细目录结构

热门文章

  1. 让FX DocuPrint P225 db激光打印机打印时不遗漏细节
  2. gzip zip 和zlib
  3. 水淼和MDBplus组合使用技巧
  4. 一文了解SpringBoot的配置文件
  5. ASP.NET操作EXCEL时出现的错误 Retrieving the COM class factory for component with CLSID
  6. 闲聊SDK登录和分享
  7. 填谷式无源pfc电路_无源PFC讲解--LED驱动电源
  8. Ubuntu22.04如何开机重新自动运行脚本
  9. 用javamail解析邮件(失败,浏览器无法直接解析阅读,变成文件了)
  10. Windows命令操作