title: Different Uint8Array after conversion
body: <p>I'm trying some stuff with the new WebCrypto API. The <em>window.crypto.subtle.encrypt</em> function outputs the encrypted text as ArrayBuffer - but later on I want to send this output to my server, so I need it as a string.
  But now I'm facing some crazy problem regarding the conversion:</p>
  
  <pre><code>console.log(encrypted); //ArrayBuffer { byteLength: 28 } (sample output from encryption function)
  var encryptedAsUint8 = new Uint8Array(encrypted);
  console.log(encryptedAsUint8); //Uint8Array [ 25, 235, 161, 121, 221, 61, 132, 15, 161, 17...
  
  var decoded = new TextDecoder("utf-8").decode(encrypted);
  console.log(decoded); //�y�=��ͨ˫~���@��UcQ�
  var decoded64 = btoa(encodeURIComponent(decoded));
  console.log(decoded64); //JTE5JUVGJUJGJUJEeSVFRiVCRiVCRCUzRCVFRiVCRiVCRCUwRiVFRiVCRiVCRCUxMSVDRCVBOCVDQiVBQn4lRUYlQkYlQkQlRUYlQkYlQkQlMDIlN0YlRUYlQkYlQkQlNDAlRUYlQkYlQkQlRUYlQkYlQkRVY1ElRUYlQkYlQkQ=
  var encodedAgain = decodeURIComponent(atob(decoded64));
  console.log(encodedAgain); //�y�=��ͨ˫~���@��UcQ�
  console.log(decoded === encodedAgain); //true - AS YOU CAN SEE, UNTIL THIS POINT THE CONTENT SEEMS TO BE THE SAME - but now:
  
  
  var backToUint8 = new Uint8Array(new TextEncoder("utf-8").encode(encodedAgain));
  console.log(backToUint8 === encrypted); //false ??????? 
  console.log(backToUint8); //Uint8Array [ 25, 239, 191, 189, 121, 239, 191, 189, 61, 239,... ---&gt; WHY IS THE ARRAY NOW A DIFFERENT ONE?
  </code></pre>
  
  <p>Thanks for any helpful advice in advance! Sorry for my bad English.</p>