uniapp蓝牙传输中文乱码问题

uniapp蓝牙传输中文乱码问题

0 现状

传输数字和字母的json字符串都可以解析,有个中文的硬件那边就解析不了,替换一下发数据的处理函数即可

1 原先字符串转化函数

const stringToBytes = (msg) => {const buffer = new ArrayBuffer(msg.length)const dataView = new DataView(buffer)for (var i = 0; i < msg.length; i++) {dataView.setUint8(i, msg.charAt(i).charCodeAt())}return buffer}

2 新的字符串替换函数

const stringToBytes = (msg) => {const bytes = [];for (let i = 0; i < msg.length; ++i) {const charCode = msg.charCodeAt(i);if (charCode < 0x80) {bytes.push(charCode);} else if (charCode < 0x800) {bytes.push(0xC0 | (charCode >> 6), 0x80 | (charCode & 0x3F));} else if (charCode < 0x10000) {bytes.push(0xE0 | (charCode >> 12),0x80 | ((charCode >> 6) & 0x3F),0x80 | (charCode & 0x3F));} else if (charCode < 0x200000) {bytes.push(0xF0 | (charCode >> 18),0x80 | ((charCode >> 12) & 0x3F),0x80 | ((charCode >> 6) & 0x3F),0x80 | (charCode & 0x3F));} else if (charCode < 0x4000000) {bytes.push(0xF8 | (charCode >> 24),0x80 | ((charCode >> 18) & 0x3F),0x80 | ((charCode >> 12) & 0x3F),0x80 | ((charCode >> 6) & 0x3F),0x80 | (charCode & 0x3F));} else {bytes.push(0xFC | (charCode >> 30),0x80 | ((charCode >> 24) & 0x3F),0x80 | ((charCode >> 18) & 0x3F),0x80 | ((charCode >> 12) & 0x3F),0x80 | ((charCode >> 6) & 0x3F),0x80 | (charCode & 0x3F));}}const buffer = new Uint8Array(bytes).buffer;return buffer;}

真的很神奇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/212980.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

eclipse中一些文件的作用

.idea文件夹 .idea和.settings文件夹是IntelliJ IDEA的配置文件夹&#xff0c;用于存储项目的配置信息。这些文件夹中包含了许多XML文件&#xff0c;这些XML文件包含了项目的各种配置信息&#xff0c;例如编译选项、运行配置、代码样式、版本控制等等。 包含了一些名为modules.…

PyQt6 QDateEdit日期控件

​锋哥原创的PyQt6视频教程&#xff1a; 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计39条视频&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面开发 视频教程(无废话…

多数元素算法(leetcode第169题)

题目描述&#xff1a; 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。示例 1&#xff1a;输入&#xff1a;nums [3,2,3] 输出&am…

Python:可以做什么?

简介 Python是一种高级编程语言&#xff0c;因其简单易学、代码可读性强和拥有丰富的标准库而广受欢迎。Python可以用于许多不同领域&#xff0c;主要包括&#xff1a; 数据分析与数据科学&#xff1a;Python有强大的数据处理和分析库&#xff0c;如Pandas、NumPy和SciPy&…

空中消防员:无人机森林防火应用全面升级

森林是生态系统的重要组成部分&#xff0c;也是人类得以生存的关键。我国森林面积广大&#xff0c;存在火灾频发的困境。提升森林火灾防控能力是维护生态平衡、保护资源和保障人民生命安全的必要步骤。随着无人机技术的发展&#xff0c;其在无人机森林防火中的应用为传统巡查工…

Linux PSI-----Pressure Stall information

PSI——压力阻塞信息 当CPU、memory或IO设备处于竞争状态&#xff0c;业务负载会遭受时延毛刺、吞吐量降低&#xff0c; 及面临OOM的风险。 如果没有一种准确的方法度量系统竞争程度&#xff0c;则有两种后果&#xff1a;一种是用户过于节制&#xff0c; 未充分利用系统资源&…

Mybatis与Spring结合深探——MapperFactoryBean的奥秘

文章目录 前言MapperFactoryBean的工作原理底层实现剖析MapperFactoryBean的checkDaoConfig()方法总结 MapperFactoryBean的getObject()方法 思考联想后续 系列相关相关文章究竟FactoryBean是什么&#xff1f;深入理解Spring的工厂神器超硬核解析Mybatis动态代理原理&#xff0…

lv12 开发板启动过程

1 开发板启动过程 1.1 回顾芯片手册第三章内存映射 对于arm来说&#xff0c;不是给它多大的内存都能读。寻址空间&#xff08;地址空间&#xff09;读写范围是有限的&#xff0c;寻址空间的大小与地址总线宽度有关&#xff0c;如32位&#xff0c;地址空间4G&#xff08;2^32)…

NVMe over Fabrics with SPDK with iRDMA总结 - 3

6.0 Configure and Test NVMe over Fabrics Host(s) to Connect to SPDK Target配置和测试 NVMe over Fabrics 主机以连接 SPDK 目标机 The SPDK NVMe-oF target system is spec compliant, which allows for the use of either an SPDK host or Linux Kernel host to co…

【C语言基础】嵌入式面试经典题(C语言篇)----有新的内容会及时补充、更新!

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…

Mac虚拟机CrossOver23破解版下载和许可证下载

CrossOver Mac Mac 和 Windows 系统之间的兼容工具。使 Mac 操作系统的用户可以运行 Windows 系统的应用&#xff0c;从办公软件、实用工具、游戏到设计软件&#xff0c; 您都可以在 Mac 程序和 Windows 程序之间随意切换。 系统要求 运行macOS的基于Intel或Apple Silicon 的…

springboot项目加载配置文件失败

问题 在使用springboot打成jar以后&#xff0c;需要文件加载一个redisson-cluster的配置文件。配置文件是在jar的同级目录。启动时却总是加载jar中的配置文件&#xff0c;而外部配置文件却不加载看下配置&#xff1a;spring:redis:redisson:# redis配置位置file: classpath:red…

lcx iptables rinetd 三个端口转发流量分析

lcx流量分析 环境搭建 本机 &#xff1a;192.168.0.52 win7 &#xff1a; 192.168.0.247 10.0.0.3 win10&#xff1a; 10.0.0.10 win7 Lcx.exe -listen 7777 4444win10 Lcx.exe -slave 10.0.0.3 7777 127.0.0.1 3389然后使用远程软件连接 连的是192.168.0.247的4444 端口 …

基于Pytorch框架深度学的垃圾分类智能识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 垃圾分类智能识别系统是一种基于深度学习技术的智能系统&#xff0c;用于对垃圾进行分类和识别。它使用Pytorch框架…

【电路笔记】-压敏电阻

压敏电阻 文章目录 压敏电阻1、概述2、交流波形瞬变3、抗静电能力4、特性曲线5、压敏电阻电容值6、金属氧化物压敏电阻7、压敏电阻应用8、总结 压敏电阻是一种无源两端固态半导体器件&#xff0c;用于为电气和电子电路提供保护。 1、概述 与提供过电流保护的保险丝或断路器不同…

Redis高效恢复策略:内存快照与AOF

第1章&#xff1a;Redis宕机恢复的重要性和挑战 大家好&#xff0c;我是小黑。今天咱们来聊聊Redis宕机后的恢复策略。想象一下&#xff0c;你的网站突然宕机了&#xff0c;所有的数据都飘了&#xff0c;这种情况下&#xff0c;快速恢复数据就显得尤为重要。Redis作为一个高性…

Python---自定义模块

1、什么是自定义模块 在Python中&#xff0c;模块一共可以分为两大类&#xff1a;内置系统模块 和 自定义模块 模块的本质&#xff1a;在Python中&#xff0c;模块的本质就是一个Python的独立文件&#xff08;后缀名.py&#xff09;&#xff0c;里面可以包含全局变量、函数以…

大厂算法指南:优选算法 ——双指针篇(下)

大厂算法指南&#xff1a;优选算法 ——双指针篇&#xff08;上&#xff09; 前言&#xff1a;双指针简介一、[611. 有效三角形的个数](https://leetcode.cn/problems/valid-triangle-number/)1.1 算法思路&#xff08;排序 双指针&#xff09;1.2 代码实现 二、[LCR 179. 查找…

[GPT]Andrej Karpathy微软Build大会GPT演讲(下)--该如何使用GPT助手

该如何使用GPT助手--将GPT助手模型应用于问题 现在我要换个方向,让我们看看如何最好地将 GPT 助手模型应用于您的问题。 现在我想在一个具体示例的场景里展示。让我们在这里使用一个具体示例。 假设你正在写一篇文章或一篇博客文章,你打算在最后写这句话。 加州的人口是阿拉…

佳明(Garmin) fēnix 7X 增加小睡检测功能

文章目录 &#xff08;一&#xff09;零星小睡&#xff08;二&#xff09;小睡检测&#xff08;三&#xff09;吐槽佳明&#xff08;3.1&#xff09;心率检测&#xff08;3.2&#xff09;光线感应器&#xff08;3.3&#xff09;手表重量&#xff08;3.4&#xff09;手表续航 &a…