title: Extraneous character while converting string to buffer and back in javascript
body: <p>In node v16.14.2,</p>
  <pre><code>&gt; String.fromCharCode.apply(null, Buffer.from('°'))
  'Â°'
  </code></pre>
  <p>This works fine though:</p>
  <pre><code>&gt; Buffer.from('°').toString('utf-8')
  '°'
  </code></pre>
  <p>I want to know why the first scenario adds an extra character in the output.</p>
  <p>Browser example:</p>
  <p><div class="snippet" data-lang="js" data-hide="true" data-console="true" data-babel="false">
  <div class="snippet-code snippet-currently-hidden">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>console.log(String.fromCharCode.apply(null, ethereumjs.Buffer.Buffer.from('°'))) /// 'Â°'
  console.log(ethereumjs.Buffer.Buffer.from('°').toString('utf-8')) // '°'
  console.log(new Uint8Array(ethereumjs.Buffer.Buffer.from('°'))) // [ 194, 176 ]
  console.log(new Uint8Array(ethereumjs.Buffer.Buffer.from(String.fromCharCode(176)))) // [ 194, 176 ]</code></pre>
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;script src="https://cdn.jsdelivr.net/gh/ethereumjs/browser-builds/dist/ethereumjs-tx/ethereumjs-tx-1.3.3.min.js"&gt;&lt;/script&gt;</code></pre>
  </div>
  </div>
  </p>
  <p><strong>EDIT</strong>:
  Another funny thing:</p>
  <pre><code>&gt; new Uint8Array(Buffer.from('°'))
  Uint8Array(2) [ 194, 176 ]
  &gt; new Uint8Array(Buffer.from(String.fromCharCode(176)))
  Uint8Array(2) [ 194, 176 ]
  </code></pre>