NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
Codificador UTF-8

Codificador UTF-8

Converta qualquer texto para hexadecimal UTF-8 com facilidade usando o Codificador UTF-8 do Qodex. Seja para preparar entradas para algoritmos de hash, depurar fluxos de bytes ou transmitir dados multilíngues por redes, esta ferramenta garante uma codificação segura e precisa. Você também pode decodificar texto codificado com nosso Decodificador UTF-8 para validação de ida e volta.

Codificador UTF-8 - Documentação

O que é Codificação UTF-8?

A codificação UTF-8 é o processo de converter caracteres legíveis em sequências de bytes que computadores podem entender e armazenar. UTF-8 significa "Unicode Transformation Format - 8 bit" e é o sistema de codificação mais utilizado na web.

Com a codificação UTF-8, cada letra, número, emoji ou símbolo é mapeado para uma representação hexadecimal específica. Por exemplo, a letra A vira 41 e o emoji ✔ vira E2 9C 94.

Tabela de Referência de Codificação UTF-8

Use esta tabela para consultar caracteres comuns e suas representações em bytes hexadecimais UTF-8:

Caractere

Descrição

Code Point

Bytes Hex UTF-8

Qtd. de Bytes

A

Letra maiúscula latina A

U+0041

41

1

Z

Letra maiúscula latina Z

U+005A

5A

1

0

Dígito zero

U+0030

30

1

~

Til

U+007E

7E

1

©

Símbolo de copyright

U+00A9

C2 A9

2

é

Letra e com acento agudo

U+00E9

C3 A9

2

ü

Letra u com trema

U+00FC

C3 BC

2

£

Símbolo da libra

U+00A3

C2 A3

2

Símbolo do euro

U+20AC

E2 82 AC

3

Marca de verificação

U+2714

E2 9C 94

3

CJK "meio"

U+4E2D

E4 B8 AD

3

CJK "mundo/fronteira"

U+754C

E7 95 8C

3

🚀

Emoji de foguete

U+1F680

F0 9F 9A 80

4

𝄞

Clave de sol musical

U+1D11E

F0 9D 84 9E

4

UTF-8 vs. ASCII e UTF-16

Característica

ASCII

UTF-8

UTF-16

Intervalo de caracteres

128 caracteres (apenas inglês)

Todo o Unicode (mais de 1,1 mi de caracteres)

Todo o Unicode

Bytes por caractere

Sempre 1

1 a 4 (variável)

2 ou 4

Compatível com ASCII

Sim (é o próprio ASCII)

Sim (retrocompatível)

Não

Melhor para

Sistemas legados em inglês

Web, APIs, maioria dos apps modernos

Internos do Java/Windows, textos CJK intensos

Uso na web

Em declínio

Mais de 98% dos sites

Raro na web

Como Funciona a Codificação UTF-8 (Por Dentro)

UTF-8 usa padrões de bytes diferentes dependendo do code point Unicode:

Intervalo Unicode

Bytes

Formato de Codificação

Exemplo

U+0000 a U+007F

1

0xxxxxxx

A = 41

U+0080 a U+07FF

2

110xxxxx 10xxxxxx

é = C3 A9

U+0800 a U+FFFF

3

1110xxxx 10xxxxxx 10xxxxxx

€ = E2 82 AC

U+10000 a U+10FFFF

4

11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

🚀 = F0 9F 9A 80

Fluxo de Codificação:

  1. Leia cada caractere da string de entrada

  2. Encontre o code point Unicode (ex.: 'A' = U+0041)

  3. Converta para binário e encaixe na estrutura UTF-8 correta com base na contagem de bytes

  4. Gere como hex, com valores separados por espaço (ex.: 41 para 'A')

Exemplos Práticos

Exemplo 1: ASCII simples (1 byte)

Entrada: A | Code Point: U+0041 | Hex UTF-8: 41

Exemplo 2: Latino com acento (2 bytes)

Entrada: é | Code Point: U+00E9 | Hex UTF-8: C3 A9

Exemplo 3: Emoji (4 bytes)

Entrada: 🚀 | Code Point: U+1F680 | Hex UTF-8: F0 9F 9A 80

Exemplo 4: Caractere japonês (3 bytes)

Entrada: | Code Point: U+754C | Hex UTF-8: E7 95 8C

Codificação UTF-8 em PHP, Python e JavaScript

Veja como lidar com a codificação UTF-8 nas três linguagens de desenvolvimento web mais populares:

PHP

// Encode string to UTF-8 (from another encoding)
$text = "Cafe";
$utf8 = mb_convert_encoding($text, 'UTF-8', 'ISO-8859-1');

// Get hex representation of UTF-8 bytes $hex = bin2hex("Cafe"); // Output: 436166c3a9

// Check string length in characters vs bytes echo mb_strlen("Cafe", 'UTF-8'); // 4 characters echo strlen("Cafe"); // 5 bytes

// Always use multibyte functions for UTF-8 strings echo mb_strtoupper("cafe", 'UTF-8'); // CAFE

// Pro tip: Set internal encoding globally mb_internal_encoding('UTF-8');

Python

# Encode a string to UTF-8 bytes
text = "Cafe"
utf8_bytes = text.encode("utf-8")
print(utf8_bytes)  # b'Caf\xc3\xa9'

Get hex representation

hex_string = utf8_bytes.hex() print(hex_string) # 436166c3a9

Encode emoji

rocket = "\U0001F680" print(rocket.encode("utf-8").hex()) # f09f9a80

Read a file with explicit UTF-8 encoding

with open("data.txt", "r", encoding="utf-8") as f: content = f.read()

JavaScript

// Using TextEncoder (modern browsers and Node.js)
const encoder = new TextEncoder();
const bytes = encoder.encode("Cafe");
console.log(bytes); // Uint8Array [67, 97, 102, 195, 169]

// Convert to hex string const hex = Array.from(bytes) .map(b => b.toString(16).padStart(2, '0')) .join(' '); console.log(hex); // "43 61 66 c3 a9"

// URL-safe encoding (percent-encoded UTF-8) console.log(encodeURIComponent("Cafe")); // Output: Caf%C3%A9

// Encode emoji const rocketBytes = new TextEncoder().encode("\uD83D\uDE80"); console.log(Array.from(rocketBytes).map(b => b.toString(16)).join(' ')); // f0 9f 9a 80

Erros Comuns de Codificação UTF-8 e Como Corrigi-los

Erro

Sintoma

Causa

Solução

Mojibake

"Café" aparece como "Café"

Bytes UTF-8 lidos como Latin-1

Defina charset como UTF-8 nos headers HTTP e na meta tag HTML

Caracteres de substituição

Texto aparece como "Caf?"

Sequências de bytes inválidas

Recodifique os dados de origem como UTF-8 válido

Dupla codificação

"Café" aparece como "CafÃ�©"

Texto UTF-8 codificado novamente em UTF-8

Codifique apenas uma vez; verifique se já existe codificação antes de converter

Caracteres truncados

Emojis ou caracteres CJK faltando/quebrados

String cortada no meio de uma sequência (ex.: SUBSTR em bytes)

Use funções que reconhecem caracteres (mb_substr no PHP, não substr)

Problemas com BOM

Caracteres extras no início do arquivo

BOM UTF-8 (EF BB BF) incluído no início do arquivo

Salve arquivos como "UTF-8 sem BOM" no seu editor

Dados corrompidos no banco

Caracteres corrompidos ao salvar/recuperar

Banco de dados ou conexão não configurados como utf8mb4

Use charset utf8mb4 no MySQL; defina charset na conexão

Garantindo UTF-8 Correto em HTML e Headers HTTP

Para garantir que seu conteúdo web seja exibido corretamente em todos os navegadores e idiomas:

  • HTML5: Adicione <meta charset="utf-8"> dentro da seção <head>

  • Headers HTTP: Configure Content-Type: text/html; charset=utf-8 no seu servidor

  • Banco de dados: Use charset utf8mb4 no MySQL (não apenas utf8, que suporta apenas 3 bytes por caractere)

  • Arquivos: Salve os arquivos-fonte como UTF-8 sem BOM no seu editor

Quando e Onde Usar a Codificação UTF-8

  • APIs e Requisições Web: Transmita com segurança dados multilíngues ou com emojis

  • Exportação de Dados: Armazene versões byte a byte das entradas

  • Depuração de Codificação: Verifique se a corrupção de texto é causada por erros de codificação

  • Criptografia e Hash: Converta strings em bytes para hash (ex.: SHA-256)

  • Inserção em Banco de Dados: Alguns bancos de dados esperam strings codificadas em UTF-8 como hex

Combine com Estas Ferramentas

Dicas Profissionais

  • Caracteres ASCII (A-Z, 0-9, pontuação) ocupam apenas um byte; emojis ou caracteres especiais ocupam 2 a 4 bytes.

  • Use esta ferramenta para verificar a integridade byte a byte ao depurar comunicações de rede ou de API.

  • Se um caractere não aparece corretamente em outros sistemas, codifique-o aqui e verifique a decomposição de bytes.

  • Copie a saída codificada diretamente em headers HTTP, cookies ou tokens quando necessário.

  • Sempre teste com caracteres multibyte (letras acentuadas, CJK, emojis) para detectar problemas de codificação cedo.

Frequently Asked Questions

Quais formatos de entrada são suportados?

Você pode inserir qualquer texto Unicode legível, incluindo emojis, símbolos e alfabetos de qualquer idioma.

Por que alguns caracteres geram uma saída mais longa?

UTF-8 usa codificação de comprimento variável. Caracteres ASCII (como A-Z) usam 1 byte, caracteres acentuados usam 2 bytes, caracteres CJK e símbolos comuns usam 3 bytes, e emojis usam 4 bytes.

A ferramenta é segura?

Sim, toda a codificação acontece localmente no seu navegador usando JavaScript. Nenhum dado é enviado a nenhum servidor.

Posso codificar dados binários?

Esta ferramenta é projetada para codificar texto. Use um conversor hex ou codificador binário para arquivos binários.

Quantos bytes um caractere UTF-8 usa?

Depende do caractere: ASCII (U+0000-U+007F) usa 1 byte, Latino/Grego/Cirílico (U+0080-U+07FF) usa 2 bytes, CJK e a maioria dos símbolos (U+0800-U+FFFF) usam 3 bytes, e emojis e alfabetos raros (U+10000-U+10FFFF) usam 4 bytes. O máximo é 4 bytes por caractere.

O que é um BOM UTF-8?

BOM significa Byte Order Mark. Em UTF-8, é a sequência de 3 bytes EF BB BF colocada no início de um arquivo. Ao contrário do UTF-16, o UTF-8 não precisa de BOM pois sua ordem de bytes é sempre a mesma. Porém, alguns programas Windows (como o Notepad) adicionam automaticamente. O BOM pode causar problemas em scripts PHP, leitura de CSV e scripts shell. Recomendação: salve os arquivos como "UTF-8 sem BOM" no seu editor de texto.

Qual é a diferença entre codificação UTF-8 e codificação de URL?

A codificação UTF-8 converte caracteres de texto em sequências de bytes brutas (ex.: o símbolo do euro vira E2 82 AC). A codificação de URL (percent-encoding) pega esses bytes UTF-8 e coloca um sinal de porcentagem antes de cada um para uso seguro em URLs (ex.: o símbolo do euro vira %E2%82%AC). A codificação de URL é construída sobre o UTF-8: primeiro o caractere é codificado em UTF-8, depois cada byte é codificado com porcentagem.

Qual formato de codificação é usado internamente?

Usa o padrão UTF-8 definido pelo Consórcio Unicode (RFC 3629). É a mesma codificação usada por mais de 98% dos sites em todo o mundo.

Teste suas APIs hoje!

Escreva em português, o Qodex transforma em testes seguros e prontos para execução.