特定の Charset (java.nio.charset.Charset) が複数のバイトを使用して文字をエンコードしているかどうかを判断する方法はありますか? または、代わりに、文字ごとに複数のバイトを使用する/使用しない文字セットのリストがどこかにありますか?
私が尋ねている理由は、パフォーマンスの微調整です。特定の文字セットに含まれる任意の文字列の長さ (バイト単位) を知る必要があります。シングルバイト エンコーディングの場合は、単純に文字列の長さです。文字セットがシングルバイトであるかどうかを知ることで、最初に再エンコードする必要がなくなります。
これは取るに足らない最適化であり、努力する価値はないと思われるかもしれませんが、私のアプリケーションでは多くの CPU サイクルがこの種のナンセンスに費やされており、これまでに遭遇した入力データは 20 年間でした。 + 異なる文字セット。