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);
}
*/