UTF-16
Unicode の 16 ビット単位のエンコーディング方式。JavaScript や Java の内部文字列表現に使用される。
UTF-16 は Unicode を 16 ビット (2 バイト) 単位で表現するエンコーディング方式です。基本多言語面 (BMP) の文字は 2 バイト、それ以外の文字はサロゲートペアを使って 4 バイトで表現します。
JavaScript の文字列は内部的に UTF-16 で表現されています。そのため String.length は UTF-16 コードユニット数を返し、絵文字などの BMP 外の文字は長さ 2 としてカウントされます。JavaScript 文字列処理の書籍で詳しく学べます。
UTF-16 にはビッグエンディアン (UTF-16BE) とリトルエンディアン (UTF-16LE) の 2 種類があり、BOM (バイトオーダーマーク) でバイト順を識別します。
Web では UTF-8 が標準ですが、Windows の内部 API や .NET、Java は UTF-16 を使用しています。プログラミングと文字コードの書籍では UTF-16 と UTF-8 の使い分けが解説されています。