簡體   English   中英

將十六進制數組轉換為ASCII(Javascript)數組

[英]Convert array of hex to array to ASCII (Javascript)

我想將此十六進制數組轉換為ASCII數組。

我試圖將數組轉換為字符串,並使用函數將十六進制字符串轉換為ASCII,這不符合我的期望。

 var name = [4d,55,48,41,4d,4d,41,44,20,4e,41,5a,52,45,45,4e,20,42,49,,4e,20,5a,41,49,4e,55,44,49,4e]; name=hex2str(name); function hex2a(hexx) { var hex = hexx.toString();//force conversion var str = ''; for (var i = 0; (i < hex.length && hex.substr(i, 2) !== '00'); i += 2) str += String.fromCharCode(parseInt(hex.substr(i, 2), 16)); return str; } 

預期輸出:

name = [M,U,H,A,M,M,A,D, ,N,A,Z,R,E,E,N, ,B,I,N, ,Z,A,I,N,U,D,I,N]

首先4d在javascript中不是有效的十六進制,您將需要附加0x前綴以將其標記為十六進制,然后可以映射到數組並執行String.fromCharCode

 const name = [0x4d, 0x55, 0x48, 0x41, 0x4d, 0x4d, 0x41, 0x44, 0x20, 0x4e, 0x41, 0x5a, 0x52, 0x45, 0x45, 0x4e, 0x20, 0x42, 0x49, 0x20, 0x4e, 0x20, 0x5a, 0x41, 0x49, 0x4e, 0x55, 0x44, 0x49, 0x4e]; const result = name.map(hex => String.fromCharCode(hex)); console.log(result); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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