2015-05-29 87 views
1

我收到一個二進制文件(生物特徵模板),我必須將十六進制caracter轉換爲ASCII caracter。但一些十六進制字符程序不轉換,如十六進制= 95.錯誤將Hex轉換爲Ascii Javascript

什麼是錯的?我必須爲每個程序轉換什麼?

波紋管代碼:

var campo = document.getElementById('fileInput'); 
var hex = campo.toString(); 
var str = ''; 
     for (var i = 0; i < prm.length; i += 2) 
      str += String.fromCharCode(parseInt(prm.substr(i, 2), 16)); 
+0

它可能工作..原本只'prm'定義/相關的代碼片段 – Amit

+0

只是吹毛求疵,JS沒有實現ASCII,它實現_Unicode_代替。 – Teemu

+0

@Teemu ASCII是Unicode的一個子集。 – Barmar

回答

2

不指定你所說的「不轉換」的意思。如果您的意思是小數點95,則表示ASCII字符,但不可打印(NAK)。對於十六進制0x95,沒有ASCII字符,因爲ASCII是一個7位編碼(0-0x7f)。而JavaScript字符串不是ASCII碼,它們是UCS-2。

https://mathiasbynens.be/notes/javascript-encoding

+0

但我該如何解決這個問題?有人有一個例子嗎? – Fernando

+0

如果你解釋你期望發生什麼,以及發生什麼不同,我只能幫助你。如果你解釋你的意思是95h還是95d,它也會有所幫助。 –