String To ArrayBuffer & Vice-Versa
by dshilkret
JavaScript
/* # String to ArrayBuffer Conversion #
Uint8Array (short) => *1 => each char. 1 byte
Uint16Array (medium) => *2 => each char. 2 bytes
Uint32Array (long) => *4 => each char. 4 bytes
JSON => JSON.stringify({data: 'Hello World!'});
*/
debugger;
var string = 'Hello World!';
var buffer = new ArrayBuffer(parseInt(string.length));
console.log("buffer: " + buffer);
var bufferView = new Uint8Array(buffer);
for (var i = 0; i < string.length; i++) {
bufferView[i] = string.charCodeAt(i);
}
console.log(bufferView);
/* # ArrayBuffer to String Conversion #
alternative to 'bufferView' => new Uint16Array(buffer)
JSON => JSON.parse(_string).data
*/
var _string = String.fromCharCode.apply(null, bufferView);
console.log(_string);
const utf8Encode = new TextEncoder();
const byteArr = utf8Encode.encode("abc");
console.log(byteArr);
/* As individual functions
function str2arr(str, callback) {
var array = new ArrayBuffer(str.length);
var bufferView = new Uint8Array(array);
for (var i = 0; i < str.length; i++) {
bufferView[i] = str.charCodeAt(i);
}
callback(bufferView);
}
function arr2str(arr, callback) {
var _arr = String.fromCharCode.apply(null, arr);
callback(_arr);
}
*/