Well, UTF-8 <i>is</i> rather brilliant in many ways.<p>It can represent all of Unicode while remaining backwards compatible with ASCII and C string representations.<p>The drawback, that characters have variable encoding, is almost irrelevant, because if you are using character indices, you are almost certainly doing it wrong anyway.