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 Answer 1

1

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))); // 👍

Sign up to request clarification or add additional context in comments.

2 Comments

Great answer; much appreciated. FYI: Code to initially convert a string to binary can be found here: stackoverflow.com/questions/55955730/…
If this answer was helpful, please consider marking it as accepted. See this page for an explanation of why this is important.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.