美文网首页typescript
TypeScript中 string 与 byte[] 互相转换

TypeScript中 string 与 byte[] 互相转换

作者: gsp412 | 来源:发表于2018-05-30 09:50 被阅读0次

    string转byte

    /**

      * string 转 byte

      * @param str

      */

      private stringToBytes(str) {

        var bytes = new Array();

        var len, c;

        len = str.length;

        for (var i = 0; i < len; i++) {

          c = str.charCodeAt(i);

          if (c >= 0x010000 && c <= 0x10FFFF) {

            bytes.push(((c >> 18) & 0x07) | 0xF0);

            bytes.push(((c >> 12) & 0x3F) | 0x80);

            bytes.push(((c >> 6) & 0x3F) | 0x80);

            bytes.push((c & 0x3F) | 0x80);

          } else if (c >= 0x000800 && c <= 0x00FFFF) {

            bytes.push(((c >> 12) & 0x0F) | 0xE0);

            bytes.push(((c >> 6) & 0x3F) | 0x80);

            bytes.push((c & 0x3F) | 0x80);

          } else if (c >= 0x000080 && c <= 0x0007FF) {

            bytes.push(((c >> 6) & 0x1F) | 0xC0);

            bytes.push((c & 0x3F) | 0x80);

          } else {

            bytes.push(c & 0xFF);

          }

        }

        return bytes;

      }

    byte转string

    /**

      * byte 转 string

      * @param byte

      */

      private byteToString(byte): string {

        if (typeof byte === 'string') {

          return byte;

        }

        var str = '',

          _arr = byte;

        for (var i = 0; i < _arr.length; i++) {

          var one = _arr[i].toString(2),

            v = one.match(/^1+?(?=0)/);

          if (v && one.length == 8) {

            var bytesLength = v[0].length;

            var store = _arr[i].toString(2).slice(7 - bytesLength);

            for (var st = 1; st < bytesLength; st++) {

              store += _arr[st + i].toString(2).slice(2);

            }

            str += String.fromCharCode(parseInt(store, 2));

            i += bytesLength - 1;

          } else {

            str += String.fromCharCode(_arr[i]);

          }

        }

        return str;

      }

    相关文章

      网友评论

        本文标题:TypeScript中 string 与 byte[] 互相转换

        本文链接:https://www.haomeiwen.com/subject/ddctsftx.html