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;


}

真的很神奇

相关推荐

  1. uniapp传输中文问题

    2023-12-07 09:04:08       38 阅读
  2. uniapp通过传输数据 (ios)

    2023-12-07 09:04:08       29 阅读
  3. less中文问题

    2023-12-07 09:04:08       10 阅读
  4. mysqldump 导出中文问题

    2023-12-07 09:04:08       37 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-07 09:04:08       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-07 09:04:08       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-07 09:04:08       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-07 09:04:08       20 阅读

热门阅读

  1. Vue 的异步更新机制是如何实现的

    2023-12-07 09:04:08       37 阅读
  2. python scan方式查询redis所有数据是否含有重复的key

    2023-12-07 09:04:08       33 阅读
  3. 自定义 按钮间,按钮边框滑动。

    2023-12-07 09:04:08       39 阅读
  4. Android okhttp3.0配置https信任所有证书

    2023-12-07 09:04:08       39 阅读
  5. 「X」Embedding in NLP|初识自然语言处理(NLP)

    2023-12-07 09:04:08       33 阅读
  6. mongodb 日志详情

    2023-12-07 09:04:08       34 阅读
  7. 自然语言处理常用方法和评价指标

    2023-12-07 09:04:08       39 阅读
  8. 主流开源大语言模型的微调方法

    2023-12-07 09:04:08       37 阅读
  9. MongoDB归并连续号段-(待验证)

    2023-12-07 09:04:08       34 阅读
  10. 讲解机器学习中的 K-均值聚类算法及其优缺点。

    2023-12-07 09:04:08       35 阅读