2014-04-17 19 views
0

我想通過File API的幫助讀取本地文本文件,並將其轉換爲HEX文件,使用類似「bin2hex()」函數(使用CharCodeAt()函數),然後最後處理HEX數字以獲得我的結果。所有這些在Javascript中。File API - 十六進制轉換 - Javascript

要將我的文件轉換爲HEX數組,我通過for循環文件掃描文件的每個字符,然後使用bin2hex()函數獲取HEX值。我期望在0x00和0xFF之間的結果對應於我試圖轉換的任何字符。但似乎有時我沒有明顯的原因獲得0xfffd或0x00。您可以通過charcodeat()函數處理哪些字符或使用File API讀取字符是否存在限制?或者有可能更簡單的方法來做到這一點(PHP,Ajax)?

非常感謝,

傑羅姆

+0

你假設1個字符= 1個字節,它並不總是正確的在_Unicode_中。只需將_String_全部跳過 –

回答

3

直行進入字節而不是通過字符串

var file = new Blob(['hello world']); // your file 

var fr = new FileReader(); 
fr.addEventListener('load', function() { 
    var u = new Uint8Array(this.result), 
     a = new Array(u.length), 
     i = u.length; 
    while (i--) // map to hex 
     a[i] = (u[i] < 16 ? '0' : '') + u[i].toString(16); 
    u = null; // free memory 
    console.log(a); // work with this 
}); 
fr.readAsArrayBuffer(file);