UTF-16の拡張方法

U+10000以上のコードポイントをUTF-16で表すときは、上位サロゲートと下位サロゲートという2つの16ビット値を組み合わせます。

😀U+1F600
UTF-16D83D DE00

文字数のずれ

プログラミング言語によっては、この2つを別々に数えるため、画面では1文字でも長さが2になることがあります。

途中で分割しない

サロゲートペアの間で文字列を切ると不正なデータになります。コードポイントや書記素単位で処理できるAPIを選びます。

実際の文字を調べてみる

図鑑に戻り、気になる文字を貼り付けるとコードポイントとバイト列を確認できます。

文字コード図鑑を使う →

ほかの解説も読む

文字化け、Unicode、見えない文字など、関連する基礎知識をまとめています。

解説一覧を見る →