Codificação de Texto e Manipulação de Strings em Python

Caracteres e Sistemas de Codificação

Um caractere representa uma unidade básica de texto, como letras, símbolos ou ideogramas. Em codificação UTF-8, caracteres chineses geralmente ocupam 3 bytes, enquanto no padrão GBK utilizam 2 bytes. A codificação define como cada caractere é convertido em sequências binárias para armazenamento e processamento.

Padrões de Codificação

O ASCII clássico utiliza 7 bits para representar 128 caracteres (0-127), com o bit superior preenchido com zero em sistemas de 8 bits. Por exemplo:

# 'A' corresponde a 65 (01000001 em binário)
# 'a' corresponde a 97 (01100001 em binário)

Extensões como ISO-8859-1 expandem para 256 caracteres (0-255) usando o bit superior. Padrões orientais como GBK suportam caracteres chineses com 1-2 bytes, onde valores acima de 128 indicam sequências multibyte.

A Unicode é um padrão universal que engloba todos os sistemas de escrita. O UTF-8, sua implementação mais comum, usa codificação variável (1-4 bytes) mantendo compatibilidade com ASCII para caracteres latinos. Em Python, strings nativas utilizam internamente Unicode, sendo convertidas para UTF-8 durante persistência ou transmissão.

Sistemas Numéricos na Computação

Entender representações numéricas é essencial para trabalhar com codificação:

  • Bit: Unidade mínima (0 ou 1)
  • Byte: 8 bits (valores 0-255)
  • Hexadecimal: Base 16 (0-9, A-F), onde dois dígitos representam um byte

Exemplo de conversão:

valor_decimal = 255
print(hex(valor_decimal))  # '0xff'
print(bin(valor_decimal))  # '0b11111111'

Manipulação de Strings em Python

Strings em Python são imutáveis. Operações como concatenação geram novos objetos:

texto = "Olá"
saudacao = texto + " mundo!"  # Nova string criada

Formatação Moderna

Utilize f-strings para interpolação eficiente:

usuario = "Carlos"
nivel = 42
print(f"Usuário: {usuario}, Nível: {nivel:03d}")  # Usuário: Carlos, Nível: 042

Para controle avançado de formatação:

pi = 3.14159
print(f"Pi: {pi:.2f} | Hex: {255:#x}")  # Pi: 3.14 | Hex: 0xff

Métodos Essenciais

Método Descrição
strip() Remove espaços laterais
split(delimitador) Divide string em lista
join(lista) Concatena elementos com separador
isnumeric() Verifica se contém apenas dígitos
encode('utf-8') Converte para sequência de bytes

Sequências de Bytes

Para manipulação de dados binários, utilize objetos bytes imutáveis ou bytearray mutáveis:

# Conversão string → bytes
dados_binarios = "Texto UTF-8".encode('utf-8')

# Manipulação direta de bytes
sequencia = bytearray(b'\x48\x65\x6c\x6c\x6f')
sequencia[0] = 0x4A  # Modifica primeiro byte
print(sequencia.decode())  # "Jello"

A conversão explícita entre strings e bytes é necessária para operações de I/O, garantindo tratamento correto de codificação.

Tags: Python utf-8 Unicode Byte Arrays String Formatting

Publicado em 8-21 08:38