收藏
回答

"周六"的“六”在手机上显示为乱码?

问题模块 操作系统 操作系统版本 手机型号 微信版本
客户端 Android android 7.0 Huawei Mate9 6.6.1

你想反馈一个 Bug


一、* Bug 表现是什么?预期表现是什么?

同样的数据,"周六"的“六”在开发者工具中是正常的,但到了我的手机上显示为乱码

开发者工具上显示(选的iphone6作为模拟器):



手机上显示(华为Mate9):



二、* 如何复现?

后台返回1,2,3,4,5,6,7 的字符,通过前端进行格式化,其中只要“周六”和其他的星期一起出现就显示出乱码了。但单独只有“周六”时正常,将“六”换为“6”显示也正常。

前端格式化代码如下:

function formatRepeat2(repeat2){
  if (repeat2 != undefined && repeat2 != '') {
    if (repeat2.indexOf(',') > -1) {
      var total = '';
      var arrRepeat2 = repeat2.split(',');
      for (var j = 0; j < arrRepeat2.length; j++) {
        if (arrRepeat2[j] == '1') { total += ' 周日'; }
        else if (arrRepeat2[j] == '2') { total += ' 周一'; }
        else if (arrRepeat2[j] == '3') { total += ' 周二'; }
        else if (arrRepeat2[j] == '4') { total += ' 周三'; }
        else if (arrRepeat2[j] == '5') { total += ' 周四'; }
        else if (arrRepeat2[j] == '6') { total += ' 周五'; }
        else if (arrRepeat2[j] == '7') { total += ' 周六'; }
      }
 
      return total;
    }
    else {
      if (repeat2 == '1') { repeat2 = ' 周日'; }
      else if (repeat2 == '2') { repeat2 = ' 周一'; }
      else if (repeat2 == '3') { repeat2 = ' 周二'; }
      else if (repeat2 == '4') { repeat2 = ' 周三'; }
      else if (repeat2 == '5') { repeat2 = ' 周四'; }
      else if (repeat2 == '6') { repeat2 = ' 周五'; }
      else if (repeat2 == '7') { repeat2 = ' 周六'; }
 
      return repeat2;
    }
  }
  else
  {
    return '';
  }

}


调用层:

that.data.listlog[i].repeat2 = formatRepeat2(repeat2);



三、* 提供一个最简复现 Demo

见以上


回答关注问题邀请回答
收藏

24 个回答

  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    2018-01-17

    目前推断是 es6 转 es5 时中文处理不对导致出现乱码,仅在一部分pc预览、上传项目时出现,具体原因还在排查中。


    问题规避方案:对乱码字符串所在的 js 文件稍作修改,如增加一些无意义的函数调用、调换一些逻辑顺序等,都有可能规避问题。

    2018-01-17
    赞同
    回复
  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    2018-01-16

    @文豪

    能不能另开一帖详细描述下你的问题?请在下方回复一下你的新帖链接。

    2018-01-16
    赞同
    回复
  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    2018-01-15

    感谢,已收到。

    2018-01-15
    赞同
    回复
  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    2018-01-14

    依旧不能复现,太奇怪了。

    2018-01-14
    赞同
    回复
  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    2018-01-14

    怀疑是有文件分块时截断问题。能否告知有问题时“六”这个字符位于这个文件的第几个字节呢?

    2018-01-14
    赞同
    回复
  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    2018-01-14

    黑人问号。


    这个问题比较诡异,可能是之前的代码触发了一些奇怪的bug导致。

    2018-01-14
    赞同
    回复
  • 小程序技术专员-LastLeaf
    小程序技术专员-LastLeaf
    2018-01-14

    你好,请问有在其他手机上复现这个问题吗?

    2018-01-14
    赞同
    回复
  • 游枭
    游枭
    2018-01-26

    昨天差点被这个bug坑死,

    有一处中文字符串判断一直不过,

    后来关了ide重新打开就正常了!

    2018-01-26
    赞同
    回复
  • 唐衡
    唐衡
    2018-01-17

    @郑竣鸿 23楼的兄弟:

    谢谢帮我进行了代码检视!很多年未被代码检视过了,呵呵,虽然这个不重要,还是谢谢了! :)

    2018-01-17
    赞同
    回复
  • 郑竣鸿
    郑竣鸿
    2018-01-17

    楼主你这个改成switch循环不是更好吗,虽然不知道问题在哪里。

    2018-01-17
    赞同
    回复

正在加载...

登录 后发表内容