UTF-16

Encoding & Standards

1文字あたり2または4バイトを使用する可変長Unicode符号化方式。JavaScript、Java、Windowsが内部的に使用している。

UTF-16 uses 16-bit code units. Characters in the Basic Multilingual Plane (U+0000 to U+FFFF) use one code unit (2 bytes). Characters above U+FFFF — including most emoji — require a surrogate pair (4 bytes).

This is why JavaScript's `string.length` can be surprising with emoji: `'😀'.length` returns 2 (two UTF-16 code units), not 1. Developers must use spread syntax (`[...'😀'].length`) or `Array.from()` for correct counting.

UTF-16 exists in two byte orders: UTF-16LE (little-endian, used by Windows) and UTF-16BE (big-endian). A BOM character can indicate which is used.

関連用語

BOM(バイトオーダーマーク) (BOM) BOM(バイトオーダーマーク) (BOM)
UTF-16/UTF-32エンコーディングでバイト順序(エンディアン)を示すためにテキストファイルの先頭に置かれる文字(U+FEFF)。
UTF-32 UTF-32
1文字あたり正確に4バイトを使用する固定長Unicode符号化方式。コードポイントへの直接マッピングが可能だが、ストレージ効率が低い。
UTF-8 UTF-8
1文字あたり1〜4バイトを使用する可変長Unicode符号化方式。ウェブで最も普及しており、98%以上のウェブサイトで使用されている。
コード単位 コード単位
文字を符号化するための最小ビット単位。UTF-8では8ビット、UTF-16では16ビット、UTF-32では32ビット。
サロゲートペア サロゲートペア
U+FFFFを超える文字を表すために使用される2つのUTF-16コード単位の組み合わせ。上位サロゲート(U+D800〜U+DBFF)と下位サロゲート(U+DC00〜U+DFFF)で構成される。
補助多言語面(SMP) (SMP) 補助多言語面(SMP) (SMP)
Unicode第1面(U+10000からU+1FFFF)。大多数の絵文字コードポイントが割り当てられている領域。

関連ツール

🔢 Unicode 検索 Unicode 検索
U+1F600 のようなコードポイントを入力すると、対応する絵文字、エンコード詳細、UTF-8/16 バイト、HTML エンティティを確認できます。