utf16le-encoding
Version:
UTF16-le encoding, a.k.a. UCS2 encoding, an encoding you probably should never use.
27 lines (26 loc) • 790 B
JavaScript
/* MAIN */
const Browser = {
/* API */
encode: (data) => {
let string = '';
for (let i = 0, l = data.length - 1; i < l; i += 2) { // Skipping a potential trailing odd byte
const charCode = data[i] + (data[i + 1] * 256);
const char = String.fromCharCode(charCode);
string += char;
}
return string;
},
decode: (data) => {
const uint8 = new Uint8Array(data.length * 2);
for (let i = 0, l = data.length; i < l; i++) {
const charCode = data.charCodeAt(i);
const hi = (charCode >> 8);
const lo = (charCode % 256);
uint8[i * 2] = lo;
uint8[(i * 2) + 1] = hi;
}
return uint8;
}
};
/* EXPORT */
export default Browser;