JSFiddle - React, Tailwind, and code Playground

by MegaScience

HTML

<textarea id="blah"></textarea>

JavaScript

/*function b64_to_utf8( str ) {
  return decodeURIComponent(escape(window.atob( str )));
}
const escapism = s => encodeURIComponent(s).replace(/%([0-9A-F]{2})/g, (_, p) => String.fromCharCode(`0x${p}`))
const b64EncodeUnicode = s => btoa(encodeURIComponent(s).replace(/%([0-9A-F]{2})/g, (_, p) => String.fromCharCode(`0x${p}`)))
const processed = decodeURIComponent(escape(atob(b64EncodeUnicode('πŸ’š'))))
const escaped = escape(escapism('πŸ’š'))
alert(processed, escaped)
console.log(processed, escaped)
document.getElementById('blah').value = processed + escaped
document.body.textContent = processed + escaped*/

const b64EncodeUnicode = s => btoa(encodeURIComponent(s).replace(/%([0-9A-F]{2})/g, (_, p) => String.fromCharCode(`0x${p}`)))
const b64DecodeUnicode = s => decodeURIComponent(atob(s).split('').map(c => `%${c.charCodeAt(0).toString(16).padStart(2, 0)}`).join(''))

const encoded = b64EncodeUnicode('πŸ’š')
const decoded = b64DecodeUnicode(encoded)
alert(encoded, decoded)
console.log(encoded, decoded)
document.getElementById('blah').value = `${encoded} ${decoded}`
//document.body.textContent = `${encoded} ${decoded}`