UTF-16
U+0000~U+FFFFの範囲ならそのまま16bitデータとして格納する。
U+10000~U+10FFFFの文字はサロゲートペアを使って表現する。
2バイトで表現できる文字(0x0000~0xD7FF、0xE000~0xFFFF)はそのまま2バイトで表し、
それ以降(0x00000000~0x0010FFFF)の文字は4バイトで表します
このため英数も日本語も全て2バイトで表現されます。
UTF-8 (8-bit UCS Transformation Format)
UCS-2で定義される文字集合を用いて記述された文字列をバイト列に変換する方式の1つ。1文字を1~6バイトの可変長マルチバイトに変換する。
UTF-16 (16-bit UCS Transformation Format)
UCS-2で定義される文字集合を用いて記述された文字列に、UCS-4の一部の文字を埋め込むためのエンコード方式 UTF-8と併用することができる。UCS-2で利用できる文字数を大幅に増やすことができる。