收藏
回答

蓝牙打印机打印中文乱码

问题模块
API和组件


macbook,老版本开发工具,版本0.22.203100 (0.22.203100)。使用打印机GP-58MBIII打印小票,经典蓝牙。可以使用指令控制打印格式,可以打印字母数字等,但汉字就乱码,效果如下。另,小程序目前只支持低功耗蓝牙,是指根本不能发现和连接经典蓝牙设备,还是如下图所示,打印不正常。以后是否会支持经典蓝牙?哪位给个解答~


附字符串转ArrayBuffer代码:


function str2ab(str) {

    // 19968-40869

    var buffer = new ArrayBuffer(str.length * BYTE_PER_ELEMENT)

    var dataView = new Uint16Array(buffer)

    var array = []

    for (var i = 0, len = str.length; i < len; i++) {

        var uniStr = str.charCodeAt(i)

        console.log('unistr = ' + uniStr + ',' + str.charAt(i))

        if (uniStr >= 18868 && uniStr <= 40869) {

            // 如果是中文

            

        }

        dataView[i] = uniStr

    }

    return buffer

}





最后一次编辑于  2017-09-16  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

18 个回答

  • %004A%004F%0045
    %004A%004F%0045
    2017-09-16

    中文的编码问题,你这应该是直接把utf8的中文字符转成16进制了,打印机一般是支持gb2312,我解决办法是,在服务端把中文转成gb2312以后再转16进制

    2017-09-16
    赞同
    回复
  • %004A%004F%0045
    %004A%004F%0045
    2017-09-16

    请问你们可以用安卓手机连接到蓝牙打印机吗?

    2017-09-16
    赞同
    回复 1
    • 第五日凌晨
      第五日凌晨
      05-30

      当初放弃安卓了

      05-30
      赞同
      回复
  • 第五日凌晨
    第五日凌晨
    2017-09-16


    @%004A%004F%0045,感谢评论,我现在是测试阶段,直接写的固定中文,和服务端没交互。按照你的办法,我可以代码先将字符串中的中文gb2312,后将整个字符串转16进制也是可以的,这样说得通吗?
    2017-09-16
    赞同
    回复
  • 第五日凌晨
    第五日凌晨
    2017-09-16

    @%004A%004F%0045,我是iOS,用苹果手机是可以的,安卓没测

    2017-09-16
    赞同
    回复
  • %004A%004F%0045
    %004A%004F%0045
    2017-09-16

    @第五日凌晨 是的。我们的一个功能也刚好涉及到蓝牙打印这块,只是现在还无法在安卓上面连接打印机,你们能在安卓连接上吗?如果可以连上的话,想请教一下

    2017-09-16
    赞同
    回复
  • %004A%004F%0045
    %004A%004F%0045
    2017-09-16

    @第五日凌晨 嗯,苹果上测是没问题的

    2017-09-16
    赞同
    回复
  • 第五日凌晨
    第五日凌晨
    2017-09-16

    @%004A%004F%0045 明天我用安卓测一下,有结论再给你回复吧

    2017-09-16
    赞同
    回复
  • 王翊夫if
    王翊夫if
    2017-09-18

    iOS提供的只是低功耗蓝牙接口,你是在Mac上调试还是iOS真机上调试?

    2017-09-18
    赞同
    回复
  • 第五日凌晨
    第五日凌晨
    2017-10-06

    @王翊夫if mac和真机都试了,结果一样。我问过商家这款打印机不是低功耗,但是API可以用,我该怎么理解。

    2017-10-06
    赞同
    回复
  • 勇
    2017-10-24

    @第五日凌晨  数字,字母你是怎么转换的,

    2017-10-24
    赞同
    回复