byte array mucking

by russau

HTML

<textarea id='b64'>6b/HhVX+piS7Mh8ADeOoWw0svfsCCgdweEPLsAYD0rI=</textarea>

<div id="hex"></div>
<br/>

<div id="print"></div>

JavaScript

//var decodedData = window.atob('AAAAgQC0zZdicU76uEg1v91R9H2ZEF1h9TDNdKHjGwdqjuW3lm9dRRmjju+5xin1nG2IH6eToK6peMoQbywF58R/G3KqsDkbRYZclevFNcuEfvFsQzYdGnr8R/IUUv9V+dN9QyZtSZVNBPr0rYpLTdLQt3mx+YRPtTsWyB0mfljli2F+yQAAAEEA5uigRgKp8ScGauUijvdOLZIhHWq7y5Wz+nOHUuDw8P7wOTKU34QJAoWEe771p9Pf/GTA/kr0BQnPQvWUDxGzJwAAAEEA3TkLqSvA96vIUqsq2M4YkieIihjvbBGeg1x0QSzccNGF/jxhYWiuJFtnKXPPM0XL+CbNPpclBN+S0aqr4VkP1QAAAEEAurrpmpqj5vg087ZngKfFGR5rozDiTsK5DceTV97Ka3Y+Nzl+XWTxDBWk4YPh2ZlKv402hZEfWBYxUDn5ZkH/bw==');
                              
var decodedData = window.atob($('#b64').val());


for (i = 0; i < decodedData.length; ++i) {
 $('#hex').append(leftpad(decodedData.charCodeAt(i).toString(16), 2, '0') + " ");
    
    if (isPrint(decodedData[i])) $('#print').append(decodedData[i]+ " ");
    else $('#print').append("&#x2588; ");
 }

    function leftpad(str, len, pad) {
        if (len + 1 >= str.length) {
            str = Array(len + 1 - str.length).join(pad) + str;
        }
        return str;
    }

function isPrint(aChar)
   {
       myCharCode = aChar.charCodeAt(0);
   
      if((myCharCode > 31) && (myCharCode <  127))
      {
         return true;
      }
   
      return false;
   }