[英]JS hex string to actual byte values of a file
我有一個叫做data的數組,在每個索引處都有一個字節的十六進制字符串,看起來像這樣
var data = new Array("0A", "31", "55", "AA", "FF")
如果我在十六進制編輯器中檢查文件,則應該看到該順序。 因此,如果我想編寫一個文件,以使從內存地址0x00000000開始的值是該十六進制值的序列,我將如何處理呢?
目前,我正在使用此代碼創建可下載文件。
function download(filename, text) {
var file = document.createElement('a');
file.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
file.setAttribute('download', filename);
file.click();
}
您獲得了一些十六進制數字作為不帶前綴的字符串,並且您想將它們作為字節寫入文件。 由於javascript當前沒有字節實現,因此您必須將每個字節轉換為相應的char,然后寫入文件。
var data = new Array("0A", "31", "55", "AA", "FF"), file = "";
//turn hex string to number, then convert it to string and append to file
file += data.map(hex => String.fromCharCode(+("0x"+hex))).join("")
//byte file back to hex array
data = file.split("").map(ch => ("0"+ch.charCodeAt(0).toString(16).toUpperCase()).slice(-2))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.