1. UTF-8
1.1. codificação multibyte mais utilizada
1.1.1. econômica em espaço
1.1.2. compatível com ASCII
1.2. até 7 bits
1.2.1. 0xxx-xxxx
1.3. 8-11 bits
1.3.1. 110x-xxxx 10xx-xxxx
1.4. 12-16 bits
1.4.1. 1110-xxxx 10xx-xxxx 10xx-xxxx
1.5. 17-21 bits
1.5.1. 1111-0xxx 10xx-xxxx 10xx-xxxx 10xx-xxxx
2. Unicode
2.1. conjunto enorme de caracteres
2.2. cada caractere possui código numérico único
2.2.1. code point
2.2.2. Exemplo
2.2.2.1. 😜
2.2.2.1.1. 128540
2.2.2.1.2. U+1f61c
2.2.2.1.3. 😜
2.2.2.1.4. \u1f61c
2.3. UTF-8
2.3.1. 8-bit Unicode Transformation Format
2.3.2. 1 a 4 bytes por caractere
2.3.3. usado em
2.3.3.1. Linux
2.3.3.2. Windows 10
2.3.3.3. outros sistemas recentes
2.4. UTF-16
2.4.1. 2 a 4 bytes por caractere
2.4.2. usado em
2.4.2.1. APIs dos sistemas Windows
2.4.2.2. Java
2.4.2.3. Python
2.4.2.4. PHP
2.5. UTF-32
2.5.1. sempre 4 bytes por caractere
2.5.2. pouco usado na prática
3. Caracteres Multibyte
3.1. ISO-8859
3.1.1. somente um byte
3.1.1.1. 256 caracteres
3.2. Padrões de codificação multibyte
3.2.1. ISO-2022-CJK
3.2.1.1. chinês
3.2.1.2. japonês
3.2.1.3. coreano
3.2.2. Shift-JIS
3.2.2.1. japonês (Windows)
3.2.3. GB 18030
3.2.3.1. padrão oficial chinês
3.2.4. Big5
3.2.4.1. chines tradicional (Taiwan)
3.2.5. Unicode
4. Introdução
4.1. computador só armazena e processa bytes
4.1.1. 8 bits
4.1.2. números inteiros entre 0 e 255
4.2. informações mais complexas que os bytes
4.2.1. codificação
4.2.1.1. transformá-las em sequêcias de bytes
4.3. Caractere
4.3.1. símbolo da linguagem
4.3.1.1. letra
4.3.1.2. dígito
4.3.1.3. sinal
4.3.2. Exemplos
4.3.2.1. A
4.3.2.2. i
4.3.2.3. ç
4.3.2.4. ë
4.3.2.5. €
4.3.2.6. μ
4.3.2.7. Σ
4.3.2.8. 😁
4.3.2.9. ✂️
4.3.3. sequência binária
4.3.3.1. bytes
4.4. Charset
4.4.1. conjunto de caracteres
4.4.2. Exemplo
4.4.2.1. A-Z
4.4.2.2. a-z
4.4.2.3. 0-9
4.4.2.4. ! @ # $ %
4.5. Encoding
4.5.1. codificação
4.5.2. caracteres
4.5.2.1. respectivos valores em bytes
4.5.3. Exemplo
4.5.3.1. A = 65
5. Código ASCII
5.1. American Standard Code for Information Interchange
5.2. Tabela ASCII
5.2.1. 0-31 e 127
5.2.1.1. caracteres de controle
5.2.1.1.1. newline
5.2.1.1.2. form feed
5.2.1.1.3. tab
5.2.1.1.4. etc
5.2.1.1.5. dependem do terminal utilizado
5.2.2. 32-126
5.2.2.1. caracteres imprimíveis
5.2.2.1.1. A
5.2.2.1.2. B
5.2.2.1.3. C
5.2.2.1.4. independentes de terminal
6. Code Pages
6.1. Desenvolvidas porque o ASCII padrão não trabalha com caracteres
6.1.1. acentuados
6.1.2. específicos de outras línguas
6.2. Oitavo bit de cada byte
6.2.1. valores acima de 127
6.2.1.1. ASCII estendida
6.3. Mais conhecidas
6.3.1. CP-437
6.3.1.1. primeiros PCs
6.3.1.1.1. caracteres acentuados
6.3.1.1.2. gráficos simples
6.3.2. Windows-1252
6.3.2.1. sistemas Windows mais antigos
6.3.2.2. diversas linguagens
6.3.3. KOI8-R
6.3.3.1. cirílico russo
6.3.4. BraSCII
6.3.4.1. português brasileiro
6.3.4.1.1. 1980-90
6.3.5. ISO-8859
6.3.5.1. diversas línguas
7. ISO-8859
7.1. Anos 1980
7.1.1. organizar a profusão de codepages ASCII estendidas
7.1.1.1. ISO propôs ISO-8859
7.2. Gradualmente substituída pelo Unicode
7.3. Exemplos
7.3.1. ISO-8859-1
7.3.1.1. Europa ocidental
7.3.1.1.1. francês
7.3.1.1.2. espanhol
7.3.1.1.3. italiano
7.3.1.1.4. alemão
7.3.1.1.5. etc
7.3.2. ISO-8859-15
7.3.2.1. revisão do ISO-8859-1
7.3.2.1.1. contendo o € e outros símbolos
7.3.3. ISO-8859-2
7.3.3.1. Europa central
7.3.3.1.1. Bósnio
7.3.3.1.2. Polonês
7.3.3.1.3. Croata
7.3.3.1.4. etc
7.3.4. ISO-8859-6
7.3.4.1. árabe simplificado
7.3.5. ISO-8859-7
7.3.5.1. grego