Representaciones codificadas: utf8, utf16, unicodeScalars
Trabaje con diferentes representaciones codificadas.
Representaciones codificadas: utf8, utf16, unicodeScalars es una lección gratuita de Swift Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Swift Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Swift Academy incluye 4 lecciones en total.
Vistas de codificación de cadenas
Un String de Swift ofrece varias vistas del mismo texto en distintos niveles: utf8, utf16 y unicodeScalars.
let s = "Hi"
print(Array(s.utf8))
print(Array(s.utf16))La vista utf8
La vista .utf8 expone la cadena como una secuencia de unidades de código UTF-8 (bytes). Cada carácter ASCII ocupa un byte.
let s = "AB"
for byte in s.utf8 {
print(byte)
}UTF-8 de varios bytes
Los caracteres que no son ASCII ocupan varios bytes UTF-8. Una letra acentuada o un emoji se amplía a varias unidades de código.
let s = "\u{e9}"
print("UTF-8 bytes:", Array(s.utf8))La vista utf16
La vista .utf16 muestra unidades de código UTF-16. La mayoría de los caracteres comunes ocupan una unidad; los caracteres que están fuera del plano básico usan dos (un par suplente).
let s = "A\u{1F600}"
print("UTF-16 units:", Array(s.utf16))La vista unicodeScalars
La vista .unicodeScalars expone los puntos de código subyacentes, situándose entre los caracteres y los bytes sin procesar.
let s = "Hi\u{1F600}"
for scalar in s.unicodeScalars {
print(scalar.value)
}Comparar las vistas
La misma cadena produce recuentos diferentes en cada vista porque las codificaciones representan los caracteres con distintas cantidades de unidades.
let s = "\u{1F600}"
print("characters:", s.count)
print("scalars:", s.unicodeScalars.count)
print("utf16:", s.utf16.count)
print("utf8:", s.utf8.count)Por qué UTF-8
UTF-8 es la codificación predominante para archivos y redes. La vista .utf8 le permite producir exactamente esos bytes.
let message = "OK"
let bytes = Array(message.utf8)
print(bytes)Por qué UTF-16
UTF-16 se usa en algunas plataformas y API. La vista .utf16 permite interoperar con ellas.
let s = "Hi"
print("UTF-16 count:", s.utf16.count)Reconstruir una cadena
Puede reconstruir una cadena a partir de bytes UTF-8 mediante String(decoding:as:), completando un recorrido de ida y vuelta.
let bytes: [UInt8] = Array("Swift".utf8)
let restored = String(decoding: bytes, as: UTF8.self)
print(restored)Contar bytes frente a caracteres
La longitud en bytes difiere de la longitud en caracteres para el texto que no es ASCII. Elija la vista que corresponda a su tarea: visualización o almacenamiento.
let s = "caf\u{e9}"
print("Characters:", s.count)
print("UTF-8 bytes:", s.utf8.count)Elegir la vista adecuada
Use caracteres para la lógica de visualización, escalares para el análisis de Unicode, y utf8 o utf16 para la codificación, el almacenamiento y la interoperabilidad.
let s = "A\u{e9}\u{1F600}"
print("chars:", s.count, "scalars:", s.unicodeScalars.count, "utf8:", s.utf8.count)Comprobación rápida
Recuerde qué contiene la vista utf8.
Resumen: vistas de codificación
Ha aprendido que un String ofrece las vistas utf8, utf16 y unicodeScalars sobre el mismo texto; que sus recuentos difieren porque las codificaciones usan unidades de distinto tamaño; y que debe elegir una vista según necesite visualización, análisis o codificación para el almacenamiento y las comunicaciones de red.
let s = "Hi\u{1F600}"
print("chars:", s.count, "utf8:", s.utf8.count, "utf16:", s.utf16.count)Preguntas frecuentes
¿La lección «Representaciones codificadas: utf8, utf16, unicodeScalars» es gratis?
Sí — el texto completo de «Representaciones codificadas: utf8, utf16, unicodeScalars» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Swift Academy, actualiza a CoddyKit PRO. El curso de Swift Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Representaciones codificadas: utf8, utf16, unicodeScalars»?
Trabaje con diferentes representaciones codificadas. Practicas Swift Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Swift Academy?
No se requiere experiencia previa. Swift Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Representaciones codificadas: utf8, utf16, unicodeScalars»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Swift Academy?
Sí. Cada lección de Swift Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Caracteres y clústeres de grafemas
- Escalares Unicode y puntos de código
- Contar e iterar caracteres
- Representaciones codificadas: utf8, utf16, unicodeScalars