第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在javascript中將字節(jié)數(shù)組轉(zhuǎn)換為字符串

在javascript中將字節(jié)數(shù)組轉(zhuǎn)換為字符串

千萬(wàn)里不及你 2019-10-09 15:23:56
如何將字節(jié)數(shù)組轉(zhuǎn)換為字符串?我發(fā)現(xiàn)這些功能相反:function string2Bin(s) {    var b = new Array();    var last = s.length;    for (var i = 0; i < last; i++) {        var d = s.charCodeAt(i);        if (d < 128)            b[i] = dec2Bin(d);        else {            var c = s.charAt(i);            alert(c + ' is NOT an ASCII character');            b[i] = -1;        }    }    return b;}function dec2Bin(d) {    var b = '';    for (var i = 0; i < 8; i++) {        b = (d%2) + b;        d = Math.floor(d/2);    }    return b;}但是,如何使功能以其他方式起作用?謝謝。o
查看完整描述

3 回答

?
江戶(hù)川亂折騰

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊

您需要將每個(gè)八位位組解析回?cái)?shù)字,然后使用該值來(lái)獲取字符,如下所示:


function bin2String(array) {

  var result = "";

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

    result += String.fromCharCode(parseInt(array[i], 2));

  }

  return result;

}


bin2String(["01100110", "01101111", "01101111"]); // "foo"


// Using your string2Bin function to test:

bin2String(string2Bin("hello world")) === "hello world";

編輯:是的,您的當(dāng)前時(shí)間string2Bin可以寫(xiě)得更短:


function string2Bin(str) {

  var result = [];

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

    result.push(str.charCodeAt(i).toString(2));

  }

  return result;

}

但是通過(guò)查看您鏈接的文檔,我認(rèn)為該setBytesParameter方法期望blob數(shù)組包含十進(jìn)制數(shù)字,而不是位字符串,因此您可以編寫(xiě)如下內(nèi)容:


function string2Bin(str) {

  var result = [];

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

    result.push(str.charCodeAt(i));

  }

  return result;

}


function bin2String(array) {

  return String.fromCharCode.apply(String, array);

}


string2Bin('foo'); // [102, 111, 111]

bin2String(string2Bin('foo')) === 'foo'; // true


查看完整回答
反對(duì) 回復(fù) 2019-10-09
?
至尊寶的傳說(shuō)

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊

只需apply將您的字節(jié)數(shù)組移至String.fromCharCode。例如


String.fromCharCode.apply(null, [102, 111, 111]) 等于'foo'。


警告:適用于小于65535的數(shù)組。MDN文檔在此處。


查看完整回答
反對(duì) 回復(fù) 2019-10-09
?
jeck貓

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊

嘗試使用新的文本編碼API:


// create an array view of some valid bytes

let bytesView = new Uint8Array([104, 101, 108, 108, 111]);


console.log(bytesView);


// convert bytes to string

// encoding can be specfied, defaults to utf-8 which is ascii.

let str = new TextDecoder().decode(bytesView); 


console.log(str);


// convert string to bytes

// encoding can be specfied, defaults to utf-8 which is ascii.

let bytes2 = new TextEncoder().encode(str);


// look, they're the same!

console.log(bytes2);

console.log(bytesView);


查看完整回答
反對(duì) 回復(fù) 2019-10-09
  • 3 回答
  • 0 關(guān)注
  • 6308 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)