Auf einem String
, ich utf8
und count
zu bekommen die Anzahl der Bytes, die die String mit UTF-8-Codierung erforderlich verwenden können, um codieren:Holen Sie sich das UTF-8-Kodierung eines Zeichens in Bytes
"a".utf8.count // 1
"チャオ".utf8.count // 9
"チ".utf8.count // 3
jedoch Ich sehe keine gleichwertige Methode für einen einzelnen Character
Wert. Um die Anzahl der Bytes zu erhalten benötigt, um ein Zeichen in der Zeichenfolge in UTF-8 zu kodieren, konnte ich durch die Zeichenfolge von Zeichen durchlaufen, konvertieren Sie die Zeichen in einen String, und erhalten die utf8.count
dieser String:
"チャオ".characters.forEach({print(String($0).utf8.count)}) // 3, 3, 3
Dies erscheint unnötig ausführlich. Gibt es eine Möglichkeit, die UTF-8-Kodierung eines Character
in Swift zu bekommen?
Warum 'unterschätzenCount'? 'let c =" チ ャ オ ".utf8.count" gibt die genaue UTF-8 Länge eines Strings an. –
@MartinR guter Punkt, ich werde stattdessen 'count' verwenden. Aber was ist mit der Größe auf einer Charakter-für-Buchstabe Basis? – JAL
Soweit ich weiß, ist die Umwandlung in einen String der einzige Weg. –