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

我从蓝牙设备获取的数据为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. android 之intent(意图)详解
  2. Groovy与Java的不同点
  3. eclipse没有日志_技术进展 | 加强公共DHT抵抗eclipse攻击!
  4. action中写php函数,WordPress中add_action(将函数连接到指定action)
  5. Python3 threading的多线程管理中的线程管理与锁
  6. Deep Learning Literature 常用词中英文总结(一)
  7. 力扣——分数排名(数据库的题
  8. 【小游戏】2D游戏你比划我来猜(unity和陀螺仪交互)
  9. wake on LAN: 三分钟实现从Linux和Windows设备上远程唤醒设备
  10. python知网下载_GitHub - ppho99/CNKI-download: 知网(CNKI)文献下载及文献速览爬虫
  11. 祖玛游戏3D版源代码
  12. Laravel将Word文档转化为pdf文件
  13. SVN:One or more files are in a conflicted state
  14. 《Effective Modern C++》翻译--条款2: 理解auto自动类型推导
  15. 中国石油大学《高等数学二》第二次在线作业
  16. H5移动端前置摄像头成像方向错误,横屏方向错误
  17. 放弃数学专业跳槽高薪行业,如今他却后悔了
  18. Python求最大公约数的五种常见方法
  19. 从公司管理到IT审计 控制风险并增加价值(zt)
  20. imu 数据 如何处理颠簸_预测危险的地震颠簸第二部分训练监督分类器模型和

热门文章

  1. 移动端实现图片压缩上传
  2. 华为手机上的计算机,华为手机可以被屏蔽到计算机上,其他Android手机呢?其实很简单...
  3. 浅谈3NF(范式)建模
  4. 华为android系统6.0,基于安卓6.0!华为全新系统EMUI4.0降临:赞
  5. Java对象校验框架之Oval
  6. 由火车站戴口罩人脸识别入站感想
  7. MSP430嵌入式接口编程(惯性测量单元温湿度双音多频磁力计LCD显示等)
  8. GMIC 2017:对话霍金,让科学巨人解答未来
  9. 清华大学王玉计算机,清华大学环境学院研究生导师:王玉珏
  10. 软考——计算机系统——多媒体、声音、图像、视频