0

I'm new here. Using Javascript, I have successfully converted a Unicode character into a binary string (i.e., into 1s and 0s). Now, how would I convert that string back into the original Unicode character (UTF-8 I think). I have found a few code examples--but unfortunately the conversions do not work in converting the binary string back into the original character.

Here's the binary string (which is a "thumbs up" emoji):

11110000100111111001000110001101

Thanks, and any code examples you could prove (in pure Javascript) would be most welcome. Thanks.

1 Answers1

0

Basic Google-fu:

  1. Split large string in n-size chunks in JavaScript
  2. Parse binary string as byte in JavaScript
  3. Conversion between UTF-8 ArrayBuffer and String

Putting above together (sorry for my poor JS skills):

function chunkSubstr(str, size) {
  const numChunks = Math.ceil(str.length / size)
  const chunks = new Array(numChunks)

  for (let i = 0, o = 0; i < numChunks; ++i, o += size) {
    chunks[i] = parseInt(str.substr(o, size),2)
  }

  return chunks
}
function uintToString(uintArray) {
    var encodedString = String.fromCharCode.apply(null, uintArray),
        decodedString = decodeURIComponent(escape(encodedString));
    return decodedString;
}

console.log(uintToString(chunkSubstr("11110000100111111001000110001101", 8))); // 
JosefZ
  • 28,460
  • 5
  • 44
  • 83
  • Great answer; much appreciated. FYI: Code to initially convert a string to binary can be found here: https://stackoverflow.com/questions/55955730/how-to-convert-a-string-into-its-real-binary-representation-utf-8-or-whatever – The Floridude Apr 27 '22 at 20:46
  • If this answer was helpful, please consider marking it as accepted. [See this page](https://meta.stackexchange.com/questions/5234/) for an explanation of why this is important. – JosefZ Apr 29 '22 at 06:38