2014-06-08 11 views
8

quindi so come convertire in formato stringa utf8 come questoCome posso ottenere il punto di codice Unicode rappresentato da un numero intero in Swift?

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

ho già letto la guida, ma non riesco a trovare il modo per convertire Unicode punto di codice che rappresentato da intero a stringa. Ad esempio: conversione da 65 a A. Ho già provato a utilizzare "\ u" + utf8Value ma non è riuscito ancora.

C'è un modo per farlo?

+0

si sa, un singolo byte UTF8 non è sempre un carattere. Nel caso di 'A' è, nel caso di 'ñ' o 'ö' non è ... la domanda dovrebbe essere come convertire un punto di codice unicode che è rappresentato come un numero intero, in un carattere .. – Michael

+0

Grazie per aver indicato che Michael, ho già modificato la mia domanda –

risposta

11

Se si guarda la definizione enum per Character si può vedere la seguente inizializzazione:

init(_ scalar: UnicodeScalar) 

Se poi guardiamo alla struct UnicodeScalar, vediamo questo initializer:

init(_ v: UInt32) 

Possiamo metterli insieme, e otteniamo un intero personaggio

Character(UnicodeScalar(65)) 

e se vogliamo in una stringa, è solo un altro inizializzatore via ...

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

Or (anche se non riesco a capire il motivo per cui questo funziona) si può fare

String(UnicodeScalar(65)) 
+0

Non l'ho mai capito, grazie cobbal! –

+0

Come per l'ultimo caso: 'String (UnicodeScalar (65))' usato per funzionare ma ora sarebbe 'String (che descrive: UnicodeScalar (65))'. Questo indica che questo particolare inizializzatore tratta 'UnicodeScalar' come' CustomStringConvertible', chiedendo la sua auto-'descrizione' alla fine. – ctietze

Problemi correlati