Swift Academy · Aula

Representações Codificadas: utf8, utf16, unicodeScalars

Trabalhe com diferentes representações codificadas.

Aula 4 de 413 etapas

Representações Codificadas: utf8, utf16, unicodeScalars é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Swift Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Swift Academy inclui 4 aulas no total.

Visões de codificação de strings

Uma String do Swift oferece várias visões do mesmo texto em diferentes níveis: utf8, utf16 e unicodeScalars.

let s = "Hi"
print(Array(s.utf8))
print(Array(s.utf16))

A visão utf8

A visão .utf8 expõe a cadeia de caracteres como uma sequência de unidades de código UTF-8 (bytes). Os caracteres ASCII ocupam um byte cada.

let s = "AB"
for byte in s.utf8 {
    print(byte)
}

UTF-8 com vários bytes

Os caracteres não ASCII ocupam vários bytes UTF-8. Uma letra acentuada ou um emoji se expande para várias unidades de código.

let s = "\u{e9}"
print("UTF-8 bytes:", Array(s.utf8))

A visão utf16

A visão .utf16 mostra unidades de código UTF-16. A maioria dos caracteres comuns ocupa uma unidade; os caracteres acima do plano básico usam duas, formando um par substituto.

let s = "A\u{1F600}"
print("UTF-16 units:", Array(s.utf16))

A visão unicodeScalars

A visão .unicodeScalars expõe os pontos de código subjacentes, situando-se entre os caracteres e os bytes brutos.

let s = "Hi\u{1F600}"
for scalar in s.unicodeScalars {
    print(scalar.value)
}

Comparando as visões

A mesma cadeia de caracteres produz contagens diferentes em cada visão, pois as codificações representam os caracteres com números diferentes 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 que UTF-8

UTF-8 é a codificação predominante para arquivos e redes. A visão .utf8 permite produzir exatamente esses bytes.

let message = "OK"
let bytes = Array(message.utf8)
print(bytes)

Por que UTF-16

UTF-16 é usado por algumas plataformas e interfaces de programação. A visão .utf16 permite interoperar com elas.

let s = "Hi"
print("UTF-16 count:", s.utf16.count)

Reconstruindo uma cadeia de caracteres

Você pode reconstruir uma cadeia de caracteres a partir de bytes UTF-8 usando String(decoding:as:), completando um ciclo de ida e volta.

let bytes: [UInt8] = Array("Swift".utf8)
let restored = String(decoding: bytes, as: UTF8.self)
print(restored)

Contando bytes versus caracteres

O comprimento em bytes difere do comprimento em caracteres para textos não ASCII. Escolha a visão que corresponde à sua tarefa: exibição ou armazenamento.

let s = "caf\u{e9}"
print("Characters:", s.count)
print("UTF-8 bytes:", s.utf8.count)

Escolhendo a visão correta

Use caracteres para a lógica de exibição, escalares para a análise do Unicode e utf8 ou utf16 para codificação, armazenamento e interoperabilidade.

let s = "A\u{e9}\u{1F600}"
print("chars:", s.count, "scalars:", s.unicodeScalars.count, "utf8:", s.utf8.count)

Verificação rápida

Relembre o que a visão utf8 contém.

Recapitulação: visões de codificação

Você aprendeu que uma String oferece as visões utf8, utf16 e unicodeScalars sobre o mesmo texto; que as contagens diferem porque as codificações usam tamanhos diferentes de unidade; e que você escolhe uma visão com base na necessidade de exibição, análise ou codificação para armazenamento e redes.

let s = "Hi\u{1F600}"
print("chars:", s.count, "utf8:", s.utf8.count, "utf16:", s.utf16.count)
Grátis para começar

Aprenda Swift com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
122
Aulas
409

Perguntas Frequentes

A aula “Representações Codificadas: utf8, utf16, unicodeScalars” é grátis?

Sim — o texto completo de “Representações Codificadas: utf8, utf16, unicodeScalars” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Swift Academy, atualize para CoddyKit PRO. O curso de Swift Academy inclui 4 aulas no total.

O que vou aprender em “Representações Codificadas: utf8, utf16, unicodeScalars”?

Trabalhe com diferentes representações codificadas. Você pratica Swift Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Swift Academy?

Nenhuma experiência prévia é necessária. Swift Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Representações Codificadas: utf8, utf16, unicodeScalars”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Swift Academy?

Sim. Cada aula de Swift Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Caracteres e Agrupamentos de Grafemas
  2. Escalares Unicode e Pontos de Código
  3. Contagem e Iteração de Caracteres
  4. Representações Codificadas: utf8, utf16, unicodeScalars
← Voltar para Swift Academy