簡體   English   中英

JS十六進制字符串到文件的實際字節值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM