一、uint8Array轉stringapp
function uint8ArrayToString(fileData){ var dataString = ""; for (var i = 0; i < fileData.length; i++) { dataString += String.fromCharCode(fileData[i]); } return dataString } var arr = [48,48,48,48] uint8ArrayToString(arr) //"0000"
二、string裝uint8Array ui
function stringToUint8Array(str){ var arr = []; for (var i = 0, j = str.length; i < j; ++i) { arr.push(str.charCodeAt(i)); } var tmpUint8Array = new Uint8Array(arr); return tmpUint8Array } stringToUint8Array('12313132') // Uint8Array(8) [49, 50, 51, 49, 51, 49, 51, 50]
三、 int轉byte[]編碼
function intTobytes(n) { var bytes = []; for (var i = 0; i < 2; i++) { bytes[i] = n >> (8 - i * 8); } return bytes; } intTobytes(10) // [0, 10]
四、string轉ArrayBuffercode
function stringToArrayBuffer(str) { var buf = new ArrayBuffer(str.length * 2); // 每一個字符佔用2個字節 var bufView = new Uint16Array(buf); for (var i = 0, strLen = str.length; i < strLen; i++) { bufView[i] = str.charCodeAt(i); } return buf; } stringToArrayBuffer('00000') 輸出:ArrayBuffer(10) {}
五、arrayBuffer轉stringstring
function arrayBufferToString(buf) { return String.fromCharCode.apply(null, new Uint8Array(buf)); }
六、base64轉blob(二進制)io
function base64toBlob(base64,type) { // 將base64轉爲Unicode規則編碼 bstr = atob(base64, type), n = bstr.length, u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n) // 轉換編碼後才能夠使用charCodeAt 找到Unicode編碼 } return new Blob([u8arr], { type, }) } 輸出:Blob {size: 3, type: "png"}