&gt; My parent was speaking about indexing at the code points level, not at the encoding (byte &#x2F; character) level.<p>You need UTF-32 for (random) indexing of code points. UTF-16 has 16-bit <i>code units</i>. Some UTF-16 <i>code points</i> are 32-bits, using a surrogate pair.<p>So it&#x27;s the same trade-off as with UTF-8. Thus no reason not to just simply use UTF-8 in the first place and take advantage of the memory savings.