• 企业微信调试发送消息接口只能发送5个中文字符问题


    调试了两天的问题总算发现问题所在

    情况:通过调用企业微信接口给用户发送消息发送英文正常,但是发送中文就会返回

              "errcode":44004,"errmsg":"empty content  错误的提示,提示说参数当中没有文本,但是json串中肯定是有内容的

    一开始以为是编码问题,调试了很久的编码都无法解决,通过编码后的中文到企业微信客户端上就是编码后的内容

    然后想到了发送一个中文字试试,居然成功了,然后一个个中文字增加,直到5个中文的时候就又发送不成功了,又返回

          "errcode":44004错误,但是发送英文不管多少都可以成功的,又一次陷入了沉思

    第二天调试过程中,猛然想到了发送的headers头部有这么一个参数

    'Content-Length': postData.length   就想会不会是和这个发送的消息内容长度有关系

    通过调试单独打印英文和中文的消息内容长度发现,中文的确实是计算长度有错误

    百度找到以下计算方法后,发送的长度正确后就所有中文字符都能发送了

    https://blog.csdn.net/xing_____/article/details/46828603

    function checkLength(str){
    var len = 0;
    for (var i=0; i<str.length; i++) {
    var c = str.charCodeAt(i);
    if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) {
    len++;
    } else {
    len+=3;
    }
    }
    return len;
    }

  • 相关阅读:
    Linux shell中的竖线(|)——…
    setTimeout,setInterval你不知道的事
    我们为什么需要SDN?---致新人
    玩转Win10的45个快捷键
    ★对“拒绝捐肾”应去道德化评价
    BT下载原理分析
    BT下载原理分析
    Python中os和shutil模块实用方法集锦
    Python中os和shutil模块实用方法集锦
    html几种美丽的分割线
  • 原文地址:https://www.cnblogs.com/gtsup/p/10150927.html
Copyright © 2020-2023  润新知