理由は、インデックスの文字へのアクセスのように配列が高速であった理由だと思いますが、一部の文字は16ビットに収まらないため、機能しません...
とにかく特別なケースを処理する必要がある場合は、UTF-8を使用しないのはなぜですか?
以前は CS-2 でしたが、これは素敵な固定長16ビットでした。もちろん、16ビットでは十分ではありません。彼らはさらにUTF-16を改造しました。
主要な部分については、単純明快な将来の保証のためです。それが見当違いの理由であったのか、それを行うのに間違った方法であったのかは、別の問題です。
このドキュメントの2004年のJava 5およびUTF-16への切り替えについてのいくつかの設計決定の背後にあるいくつかの理由を確認できます。これは、いくつかの欠点も説明しています:Java Platformの補足文字、およびJavaエコシステムがスタック全体で異なるエンコーディングを使用するのはなぜですか?.
UTF-16を使用する際の落とし穴の詳細と、UTF-8が一般により優れたオプションである理由については、TF-16は有害であると考えるべきですか?およびTF-8 Everywhereマニフェスト。