文字コードとUnicode
Unicodeとは
現在全世界で統一的に用いられている、文字コードと符号化方式
全世界の様々な文字や絵文字などの記号等々を収録している
年々更新されており、㋿なども収録されている
Unicodeのお気持ち
昔は各国で様々な文字コードが使われていた
国毎に文字コードが異なると色々と面倒
世界の文字を統一的に扱える文字コードを作ろう、ということでUnicodeが作られている
Unicodeのシステム
Unicodeでは、文字に対応する番号をコードポイントと呼ぶ
文字と言っても、それ単体では文字に見えないものも含まれる
コードポイントは非負整数で、0〜10FFFFの111万4112個。
「a」は61が割り当てられており、U+0061などのように表記する
コードポイントを非負整数の配列にする規則が主に3つある
UTF-8
8bitの非負整数の配列にする
1つのコードポイントを1〜4個の整数で表す
ASCIIの上位互換
UTF-16
16bitの非負整数の配列にする
1つのコードポイントを1〜2個の整数で表す
UTF-32
32bitの非負整数の配列にする
1つのコードポイントを1つの整数で表す(要するにそのまま)
Siv3DのStringはこれ
見た目の1文字に対応するのはコードポイントではなく、書記素という単位
複数のコードポイントで1文字を表すことがある
1文字に見えるコードポイントの並びを1つの書記素として見做す
身近なものとしては絵文字がある
家族の絵文字は、それぞれの人の見た目をコードポイントで並べていくので、たくさんのコードポイントで1文字に見える
書記素分割の規則は非常に難しいのでICUなどのライブラリに頼りましょう