【ゆーてぃーえふじゅうろく】
UTF-16 とは?
最終更新:
💡 16ビットの箱を、必要に応じて2つ使う文字表現
Unicodeの文字を16ビットの単位1つまたは2つで表す符号化方式。常に1文字が2バイトになるわけではなく、補助平面の文字には2つの単位を使います。
📌 このページのポイント
UTF-16なら、どの文字も16ビットで入るの?
2箱になるのは、どんな文字?
たとえば笑顔の絵文字😀のU+1F600だよ。UTF-16の符号単位ではD83DとDE00の組になるんだ。この2つをサロゲートペアと呼び、両方を合わせて1つの値を表すよ。
実際のファイルにはどう並ぶの?
バイトオーダーマークを付けないUTF-16LEで「A😀」を保存する例なら、41 00 3D D8 00 DEの6バイトだよ。Aが1単位、絵文字が2単位で合計3単位。LEは各16ビット単位の下位バイトを先に並べるという意味なんだ。
2箱の途中で文字列を切っても大丈夫なの?
途中で切ると片方だけのサロゲートが残り、正しいUTF-16の並びでなくなる場合があるよ。また、見た目の1文字が複数のUnicodeの値からできることもある。符号単位数、コードポイント数、見た目の文字数は分けて考えようね。
📖 おまけ:英語の意味
「Unicode Transformation Format — 16-bit」 = Unicodeの16ビット単位の変換形式
💬 16は1文字の固定サイズではなく、符号単位のビット数を指すんだよ