サロゲートペア(surrogate pair)とは、Unicodeで符号化に用いられる手法の一つである。
サロゲートは代用品の意で、基本多言語平面(Basic Multilingual Plane)中の未割当領域にある符号アドレス2つを一対としてその埒外にある符号アドレスを指定するためにそう呼ばれている。
UTF-16においてアドレス領域は下記の区間が設けられている。
U+D800 - U+DBFF: 上位サロゲート
U+DC00 - U+DFFF: 下位サロゲート
これら2つの区間からそれぞれ抽出したアドレスの組合わせによって最大で約百万パターンを収録可能となる。
例えば先頭アドレスの組となるD800DC00には線文字Bの一つである LINEAR B SYLLABLE B008 A[𐀀]が割当てられている。
日本語の難読漢字もこのサロゲートペアを用いて収録しているものがあり、𩸽ほっけ[D867DE3D]、𩹉とびうお[D867DE49]などがここに収められている。
Unicode拡張領域はU+10000〜U+10FFFFまでが確保されており、これらを16平面に分割して各用途に割り当てている。
第1平面[U+10000 - U+1FFFF]は追加多言語平面(Supplementary Multilingual Plane)という名称で、古代文字や記号・図柄類などが含まれる(携帯電話用の絵文字もここに収録)。
第2平面[U+20000 - U+2FFFF]は追加漢字平面Supplementary Ideographic Planeと呼ばれる 漢字専用領域になっており、前項に挙げた𩸽や𩹉[U+29E49]もこの区間に収録されている。
UTF-16サロゲートペアとUnicode拡張領域は一定の数的対応関係があり、以下の式で表される{全て16進数表記}。
XXXXX= 10000 + (DYYY - D800) × 400 + (DZZZ - DC00)
XXXXX: Unicode拡張領域アドレス
DYYY: 上位サロゲートアドレス
DZZZ: 下位サロゲートアドレス
例えばD860DE77を右辺に代入すると
10000 + (D860 - D800) × 400 + (DE77- DC00) = 10000 + 60×400 + 277 = 10000 + 18000 + 277 = 28277
XXXXX=28277となり、U+28277でUnicode一覧表からこれは𨉷と分かる。
サロゲートペアに関するニコニコ動画の動画を紹介してください。
急上昇ワード改
最終更新:2025/12/12(金) 12:00
最終更新:2025/12/12(金) 12:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。