title: `String.fromCharCode(event.keyCode)` behaving oddly
body: <p>There is code in a library that my app is using, that is breaking for me. The library uses <code>String.fromCharCode(event.keyCode)</code> to determine whether a keyboard shortcut which is specified has been triggered. For whatever reason, on my machine, non-alphabetic codes are behaving oddly. So, <code>event.key</code> does not equal <code>String.fromCharCode(event.keyCode)</code>. Now, I have no idea why they are using <code>String.fromCharCode(event.keyCode)</code> instead of <code>event.key</code>, but I can't change their code, so I am instead trying to understand why my machine is generating different values here.</p>
  <p>When I attach a <code>keydown</code> event listener:</p>
  <pre><code>document.addEventListener('keydown', event =&gt; console.log(event.keyCode, event.key, String.fromCharCode(event.keyCode).toLowerCase()))
  </code></pre>
  <p>I get these logs:</p>
  <pre><code>219 – &quot;[&quot; – &quot;û&quot;
  189 – &quot;-&quot; – &quot;½&quot;
  187 – &quot;=&quot; – &quot;»&quot;
  221 – &quot;]&quot; – &quot;ý&quot;
  186 – &quot;;&quot; – &quot;º&quot;
  </code></pre>
  <p>What in the world is going on?</p>