同じテキストの文字列が 2 つある場合、1 つは UTF-8、もう 1 つは UTF-16 です。UTF-8 文字列が常にUTF-16 文字列よりも小さい、または同じサイズである
と想定しても安全ですか? (バイト単位)
2 に答える
16
いいえ、通常は UTF-8 テキストの方が短くなりますが、常にそうとは限りません。
U+0000 と U+FFFF の間のものはすべて、UTF-16 では 2 バイト (1 つの UTF-16 コードポイント) で表されます。
U+0800 から U+FFFF までの文字は、UTF-8 で 3 バイトで表されます。
したがって、その範囲内の文字のみ (または大部分) を含むテキストは、UTF-16 よりも UTF-8 で表した方が簡単に長くなる可能性があります。
別の言い方をすると:
- U+0000 - U+007F: UTF-8 の方が短い (1 < 2)
- U+0080 - U+07FF: どちらも同じサイズ (2 = 2)
- U+0800 - U+FFFF: UTF-8 の方が長い (3 > 2)
- U+10000 - U+10FFFF: どちらも同じサイズ (4 = 4)
5 および 6 バイト シーケンスは UTF-8で定義されていましたが、最新の標準では無効になり、Unicode コードポイントを表す必要がなくなったことに注意してください。
于 2013-01-04T15:04:10.760 に答える
3
いいえ。UTF-8 では、文字のコード ポイント (数値) を表すのに必要なビット数に応じて、1 つの文字に 3 バイト以上を使用することがあります。
于 2013-01-04T15:06:57.660 に答える