1. ホーム
  2. java

[解決済み] Javaにおける「サロゲートペア」とは何ですか?

2022-04-23 09:37:12

質問

のドキュメントを読んでいたのですが StringBuffer 特に リバース() メソッドがあります。そのドキュメントには、以下のようなことが書かれています。 サロゲートペア . この文脈でのサロゲートペアとは何でしょうか?また 低い 高い サロゲート?

解決方法は?

サロゲートペアとは、UTF-16の符号化方式において、コードポイントの高いUnicode文字を符号化するための手段を指します。

Unicode 文字エンコーディングでは、文字は 0x0 から 0x10FFFF の間の値にマップされます。

内部的には、Java は UTF-16 エンコーディング方式を使用して、Unicode テキストの文字列を格納します。UTF-16 では、16 ビット(2 バイト)のコード単位が使用されます。16 ビ ッ ト は 0x0 か ら 0xFFFF ま でのキ ャ ラ ク タ の範囲 し か格納で き ないので、 こ の範囲 よ り 上 (0x10000 ~ 0x10FFFF) の値を格納す る ために、 い く ら か追加の複雑 さ を用い る こ と にな り ます。これは、サロゲートと呼ばれるコードユニットのペアを使用して行われます。

サロゲートコードユニットは、2つのコードユニット列の最初と最後のどちらで許可されるかによって、quot;high surrogates" と "low surrogates" として知られている2つの範囲にあります。