code: function utf8to16(e) {
      var t, n, r, i, s, o;
  
      t = '';
      r = e.length;
      n = 0;
  
      while (n < r) {
          i = e.charCodeAt(n++);
  
          switch (i >> 4) {
              case 0:
              case 1:
              case 2:
              case 3:
              case 4:
              case 5:
              case 6:
              case 7:
                  t += e.charAt(n - 1);
                  break;
              case 12:
              case 13:
                  s = e.charCodeAt(n++);
                  t += String.fromCharCode((i & 31) << 6 | s & 63);
                  break;
              case 14:
                  s = e.charCodeAt(n++);
                  o = e.charCodeAt(n++);
                  t += String.fromCharCode((i & 15) << 12 | (s & 63) << 6 | (o & 63) << 0);
                  break;
              default:
                  break;
          }
      }
  
      return t;
  }
docs: ****************************************
  utf8to16
  ****************************************