2015-05-29 32 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,它也会有所帮助。 –