サロゲートペア
Unicodeでは2byte(65536種類)で全世界の字を取り込む予定でしたが、文字数が足りなくなったためにUTF-16では4byte(2文字)で20bit(1024*1024=1,047,576)の範囲を表すように修正されました。これをサロゲートペアといいます。
Unicodeでは5~6桁の16進数で表現しておりこれを2byteの文字の空いた領域に上下(1文字目,2文字目)にそれぞれを配置しています。
配置方法は21bitの文字コードから0x10000を差し引きその答えを上下10bitずつに分割して上下に配置し、上位には0xd800を下位には0xdc00を加算します。
よくサロゲートの説明に出される文字コードを記載しています。
文字が表示できない環境を考慮して文字を画像化したものを併記しています。
Htmlで直接文字コードで記述する場合は𩸽の様に記述すると𩸽と表示されます。
下が長いつちよし 吉野屋もこの字 U+20bb7 | 𠮷 |
魚辺に花と書いて ホッケ U+29e3d | 𩸽 |
龍が4個で画数64 現在のUnicodeでおそらく最大画数の漢字 U+2a6a5 | 𪚥 |
U+1f600~U+1f60f 絵文字の一部
| 😀😁😂😃😄😅😆😇😈😉😊😋😌😍😎😏
|
サロゲートペアでは2文字分のコードを使って1文字を表現していますので、JavaScriptの各関数がサロゲート1文字を2文字と判断して予期しない動作をしますので注意が必要です。
サロゲートペア文字の一覧
以下のテキストボックスに4~5桁の16進数を入力して表示をクリックするとサロゲート領域も含めて文字一覧を表示します。
またはコンボボックスから表示する先頭文字コードを選択することができます。
表中にカーソルを移動させると該当するセルの文字が拡大されて表の上に表示されます。()内はUTF-16のコードです。