Help us understand the problem. What is going on with this article?

文字を文字コードに変換する

More than 3 years have passed since last update.

目的

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.CodeUnitUInt8 と同等に扱えます。


[詳細] http://ez-net.jp/article/28/7I6PI-lB/27pbsZx7YJG_/

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away