How do I encode a JavaScript string in utf-16?

20,736

Solution 1

Do you want this?

function strEncodeUTF16(str) {
  var buf = new ArrayBuffer(str.length*2);
  var bufView = new Uint16Array(buf);
  for (var i=0, strLen=str.length; i < strLen; i++) {
    bufView[i] = str.charCodeAt(i);
  }
  return bufView;
}

var arr = strEncodeUTF16('€13,56');

Taken from Google Developers

Solution 2

function strEncodeUTF16(str) {
  var arr = []
  for (var i = 0; i < str.length; i++) {
    arr[i] = str.charCodeAt(i)
  }
  return arr
}


var arr = strEncodeUTF16('€13,56');

console.log(arr)
Share:
20,736
Claudiu
Author by

Claudiu

Graduated from Brown University. E-mail: [email protected]

Updated on December 23, 2020

Comments

  • Claudiu
    Claudiu over 3 years

    In Python 3, I can do this:

    >>> "€13,56".encode('utf-16')
    b'\xff\xfe\xac 1\x003\x00,\x005\x006\x00'
    

    The input is a (unicode) string, while the output is a sequence of raw bytes of that string encoded in utf-16.

    How can I do the same in JavaScript - go from a (unicode) string, to a sequence of raw bytes (perhaps as a Uint8Array?) of that string encoded in utf-16?