2014-06-08 14 views
8

So weiß ich, wie String zu UTF-8-Format wie dies die Anleitung, die ich schon gelesenWie kann ich den Unicode-Codepunkt in Swift durch eine Ganzzahl darstellen?

for character in strings.utf8 { 
    // for example A will converted to 65 
    var utf8Value = character 
} 

konvertieren, aber nicht finden kann, wie Unicode-Codepunkt zu konvertieren, die durch ganzzahlige zu String dargestellt. Zum Beispiel: Umwandlung von 65 in A. Ich habe bereits versucht, den "\ u" + utf8Value zu verwenden, aber es ist immer noch fehlgeschlagen.

Gibt es eine Möglichkeit, dies zu tun?

+0

Sie wissen, Ein einzelnes UTF8-Byte ist nicht immer ein Zeichen. Im Fall von 'A' ist es im Falle von 'ñ' oder 'ö' nicht ... die Frage sollte sein, wie man einen Unicode-Codepunkt, der als Integer dargestellt wird, in ein Zeichen umwandelt. – Michael

+0

Danke für das Zeigen, Michael, ich habe meine Frage bereits bearbeitet –

Antwort

11

Wenn man sich die Enumerationsdefinition sucht Character können Sie die folgende initializer sehen:

init(_ scalar: UnicodeScalar) 

Wenn wir dann an der Struktur aussehen UnicodeScalar, sehen wir diese initializer:

init(_ v: UInt32) 

Wir können zusammensetzen, und wir bekommen ein ganzes Zeichen

Character(UnicodeScalar(65)) 

und wenn wir es in einem String wollen, ist es nur ein weiterer initializer weg ...

1> String(Character(UnicodeScalar(65))) 
$R1: String = "A" 

Oder (obwohl ich kann nicht herausfinden, warum diese funktioniert) Sie tun können,

String(UnicodeScalar(65)) 
+0

Ich habe das nie realisiert, danke Cobbal! –

+0

Für den letzten Fall: 'String (UnicodeScalar (65))' verwendet, um zu arbeiten, würde aber jetzt 'String (Beschreibung: UnicodeScalar (65))' sein. Dies zeigt an, dass dieser bestimmte Initialisierer "UnicodeScalar" als "CustomStringConvertible" behandelt und am Ende nach seiner Selbstbeschreibung fragt. – ctietze

Verwandte Themen