Rodhos Soft

備忘録を兼ねた技術的なメモです。Rofhos SoftではiOSアプリ開発を中心としてAndroid, Webサービス等の開発を承っております。まずはご相談下さい。

UTF、Unicode

Unicode

ユニコードスカラ値(非負。16進数で書く。prefixにU+) 例 U+143FC
基本多言語面(BMP)は4桁。補助多言語面は5,6桁使用。
ユニコードスカラ値のシーケンスが文字列。スカラの値のある場所が符号ポイント。符号ポイントのつらなりをブロックと呼ぶ。

文字列符号化方式

  1. 文字符号化スキーム(CES)
  2. 文字符号化方式(CEF) → UTF-8UTF-16UTF-32

UTF8

  1. 可変長(1-4バイト)の8ビット符号単位
  2. ASCIIと同じ部分は1バイト(ASCIIに対して上位互換)
  3. その他の部分を2-6バイトで符号化
  4. 文字の境界が明確

UTF-16

  1. BMP文字を16ビット符号単位
  2. 他をサロゲートペアを使って16ビット符号単位二つで表す。
  3. ファイルの先頭にバイト順マーク (BOM) が付与。(U+FEFF) → FF FEならリトリエンディアン、FE FFならビッグエンディアン

UTF-32

  1. Unicodeのすべての符号位置を単一長の符号単位として32ビットで表現する
  2. ファイルのサイズが大きくなる
  3. BOM FF FE 00 00ならリトルエンディアン00 00 FE FFならビッグエンディアン