收藏
回答

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

操作系统 操作系统版本 手机型号 微信版本
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 个回答

  • 唐衡
    唐衡
    2018-01-14


    嗯,我把我开发的源代码发给你哈,你直接用它复现吧。


    https://www.jingfatech.com/timedreminder.rar

    2018-01-14
    有用
    回复
  • 唐衡
    唐衡
    2018-01-14

    你可以把我上面问题中的代码函数复制过去试验,调用一下这个函数就能发觉问题。

    2018-01-14
    有用
    回复
  • 唐衡
    唐衡
    2018-01-14

    不是字符多的时候,就是只要“周六”和其他的字符,例如“周一”,一起显示的时候,就是“周一 周???”乱码;


    但单独显示“周六”是没有问题的。



    2018-01-14
    有用
    回复
  • 唐衡
    唐衡
    2018-01-14

    其他手机不知道,不过我找到一个办法解决了。把最后等于7的,显示为‘周六’的放到前面就可以了。



    function formatRepeat2(repeat2){
      if (repeat2 != undefined && repeat2 != '') {
        if (repeat2.indexOf(',') > -1) {
          var total = '';
          var arrRepeat2 = repeat2.split(',');
          arrRepeat2 = arrRepeat2.sort();
          for (var j = 0; j < arrRepeat2.length; j++) {
            if (arrRepeat2[j] == '1') { total += ' 周日'; }
            else if (arrRepeat2[j] == '7') { 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 += ' 周五'; }
          }
     
          return total;
        }
        else {
          if (repeat2 == '1') { repeat2 = ' 周日'; }
          else if (repeat2 == '7') { 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 = ' 周五'; }
     
          return repeat2;
        }
      }
      else
      {
        return '';
      }
    }


    2018-01-14
    有用
    回复

正在加载...

登录 后发表内容