文書   >   Swift   >  String   >   init(validatingUTF8:)
イニシャライザ
init(validatingUTF8:)
与えられたポインタによって参照される、ヌルで終る UTF-8 データをコピーして検証することによって新しい文字列を作成します。
宣言
パラメータ
cString | ヌルで終わる UTF-8 コードシーケンスへのポインタ。 |
議論
このイニシャライザは、不正な形式の UTF-8 コード単位シーケンスを修復しようとしません。見つかった場合、イニシャライザの結果は nil になります。
以下の例では、このイニシャライザを 2 つの異なる CChar 配列の内容へのポインタで呼び出します。1 つ目は正しい形式の UTF-8 コード単位シーケンスを使用し、2 つ目は不正な形式のシーケンスを最後に使用します。
let validUTF8: [CChar] = [67, 97, 102, -61, -87, 0] validUTF8.withUnsafeBufferPointer { ptr in let s = String(validatingUTF8: ptr.baseAddress!) print(s) } // Prints "Optional(Café)" let invalidUTF8: [CChar] = [67, 97, 102, -61, 0] invalidUTF8.withUnsafeBufferPointer { ptr in let s = String(validatingUTF8: ptr.baseAddress!) print(s) } // Prints "nil"
以下も見よ
Unicode データから文字列を作成する
init(Unicode.Scalar)
init?(data: Data, encoding: String.Encoding)
init?(utf8String: UnsafePointer<CChar>)
UTF-8 でコード化されたバイトの与えられた C 配列からデータをコピーすることによって作成された文字列を生成します。
init(utf16CodeUnits: UnsafePointer<unichar>, count: Int)
与えられた Unicode 文字の配列から、与えられた数の文字を含む初期化された String オブジェクトを返します。
init(utf16CodeUnitsNoCopy: UnsafePointer<unichar>, count: Int, freeWhenDone: Bool)
与えられた UTF-16 コード単位の配列から、与えられた数の文字を含む初期化された String オブジェクトを返します。
init<C, Encoding>(decoding: C, as: Encoding.Type)
指定されたコード化で、与えられた Unicode コード単位から文字列を作成します。