<story><title>Base65536 – Unicode&apos;s answer to Base64</title><url>https://www.npmjs.com/package/base65536</url></story><parent_chain></parent_chain><comment><author>colanderman</author><text>This only makes sense if your metric is number of code points.  You don&amp;#x27;t actually get better density with this.&lt;p&gt;Base64, encoded as either ASCII or UTF-8, stores 6 bits per byte; making it 75% efficient.&lt;p&gt;Base65536 encoded as UTF-8 (by far the most common) will split its characters about evenly between 3-byte and 4-byte encodings (it uses code points up to 165376 roughly evenly distributed [1]).  That is 16 bits per 3.5 bytes, or 57% efficient.  Much worse.&lt;p&gt;UTF-16 (what Javascript uses) is slightly better; you get a distribution about even between 2 and 4 bytes.  That is 16 bits per 3 bytes, or 67% efficient.  Better, but not as good as Base64 in ASCII or UTF-8.  (However, it &lt;i&gt;is&lt;/i&gt; better than Base64 in UTF-16, which is only 37.5% efficient.)&lt;p&gt;Stick with Base64 unless you&amp;#x27;re strictly counting code points (like tweets do).&lt;p&gt;[1] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;ferno&amp;#x2F;base65536&amp;#x2F;blob&amp;#x2F;master&amp;#x2F;get-block-start.json&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;ferno&amp;#x2F;base65536&amp;#x2F;blob&amp;#x2F;master&amp;#x2F;get-block-sta...&lt;/a&gt;</text></comment>
<story><title>Base65536 – Unicode&apos;s answer to Base64</title><url>https://www.npmjs.com/package/base65536</url></story><parent_chain></parent_chain><comment><author>spiznnx</author><text>I was going to complain about lack of benchmarking, but then I saw the &amp;quot;Why&amp;quot; section - I wonder what else could be shared using a single tweet.</text></comment>