目的
Swift で String
から取り出した文字を文字コードに変換します。
文字を文字コードに変換する
たとえば文字が charValue
に格納されているとき、それを文字コードに変換するには次のようにします。
Unicode 文字コードに変換する
Character
型の文字を Unicode
文字コードに変換します。
それには、文字をいったん文字列にした上で unicodeScalars
で文字毎の Unicode コレクションを取得し、その最初の文字の value
を参照します。
let code:UInt32 = String(charValue).unicodeScalars.first!.value
UTF-16
の文字コードはUInt32
型で取得できます。2 バイト文字も 4 バイト文字も 1 つの文字として扱われます。
UTF-8 文字コードに変換する
Character
型の文字を UTF-8
文字コードに変換します。
それには、文字をいったん文字列にした上で utf8
で 1 バイト毎の UTF8.CodeUnit
コレクション (String.UTF8View
) を取得します。
let codes:String.UTF8View = String(charValue).utf8
UTF-8
の場合、1 文字が 1 バイトとは限らないため、戻り値の String.UTF8View
では複数のバイトデータが含まれることがあります。
その最初の文字コードが欲しければ次のようにします。
let code:UTF8.CodeUnit = codes.first!
UTF8.CodeUnit
は UInt8
と同等に扱えます。