utf8_encode utf8_decode ejemplo codificacion acentos string utf-8 swift3

string - ejemplo - utf8_decode javascript



Método Swift 3 para crear datos codificados en utf8 a partir de cadenas (2)

Es sencillo:

let input = "Hello World" let data = input.data(using: .utf8)!

Si desea terminar data con nulo, simplemente append un 0 a él. O puede llamar a cString(using:)

let cString = input.cString(using: .utf8)! // null-terminated

Sé que hay un montón de preguntas previas a Swift3 con respecto a NSData. Tengo curiosidad por saber pasar de un Swift3 String a un utf8 codificado (con o sin terminación nula) al objeto Swift3 Data .

Lo mejor que he encontrado hasta ahora es:

let input = "Hello World" let terminatedData = Data(bytes: Array(input.nulTerminatedUTF8)) let unterminatedData = Data(bytes: Array(input.utf8))

Tener que hacer la construcción de Array() intermedia parece incorrecta.


NSString métodos NSFoundation marco NSFoundation deben descartarse para los equivalentes de Swift Standard Library. Los datos se pueden inicializar con cualquier Sequence cuyos elementos sean UInt8 . String.UTF8View cumple este requisito.

let input = "Hello World" let data = Data(input.utf8) // [72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]

No existe una representación de datos terminada nula de una cadena. La terminación de cadena nula es un detalle de implementación del lenguaje C y no debe filtrarse fuera.

Si planea trabajar con API de C, consulte la siguiente propiedad del tipo de String :

public var utf8CString: ContiguousArray<CChar> { get }