小程序蓝牙打印

本文介绍了在开发小程序蓝牙打印过程中遇到的三个问题:中文乱码、传输不完整和无打印输出。通过调整编码方式、分包传输和添加换行符解决了这些问题。感谢嵌入式开发同事的帮助,希望对遇到类似问题的开发者有所帮助。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做小程序连接蓝牙打印机一块,最后打印这块网上找了很多都没碰到我遇到的问题。可能是大家都没遇到过吧hhh,主要遇到以下几个问题。

  1. 蓝牙打印中文乱码
  2. 不能一次传输完所有包,比如说一行“123456789” 部分机型能够全部传输完成,而有的机型传到“7”就不会传,打印出来的结果就是“1234567”,不能完全打印完整
  3. 蓝牙不能打印,调用API成功无报错

第一个问题的答案,经过我查找相关资料,以及询问蓝牙厂商那边主要是由于编码问题。我这边蓝牙打印机仅支持GB2312编码,以下上代码。

//混杂
function hexStringToBuff(str){ //str='中国:WXHSH'
  const buffer = new ArrayBuffer((sumStrLength(str)) + 1)
  const dataView = new DataView(buffer)
  var data=str.toString();
  var p = 0;  //ArrayBuffer 偏移量
  for(var i=0;i<data.length;i++){
    if (isCN(data[i])){ //是中文
      //调用GBK 转码
      var t = gbk.$URL.encode(data[i]);
      for (var j = 0; j < 2; j++) {
        var temp = parseInt(t[j * 2] + t[j * 2 + 1], 16)
        dataView.setUint8(p++, temp)
      }
    }else{ 
      var temp = parseInt(data.charCodeAt(i).toString(16), 16)
      dataView.setUint8(p++,temp)
    }
  }
  re
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值