Codificador e decodificador quoted-printable
Transforma Hello café em Hello caf=C3=A9 e faz o caminho inverso: acentos e símbolos viram pares hexadecimais com sinal de igual, as letras simples continuam legíveis e as quebras suaves controlam o tamanho das linhas. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Texto
- Hello café
- Modo de cálculo
- Encode
- Resultado
- Hello caf=C3=A9
- Codificação
- quoted-printable
- Bytes de entrada
- 11
- Bytes de saída
- 15
Este codificador quoted-printable converte texto simples em UTF-8 para MIME Quoted-Printable e decodifica strings QP de volta a texto legível, usando as regras da RFC 2045 seção 6.7. O quoted-printable mantém a maioria dos caracteres ASCII legíveis, enquanto codifica octetos não seguros como escapes hexadecimais com sinal de igual, o que explica por que corpos de e-mail, gateways de correio legados, e muitos caminhos de ferramentas MIME ainda dependem dele para texto internacional, sem forçar a opacidade total do Base64. O mecanismo é totalmente determinístico: a mesma entrada e o mesmo modo sempre produzem o mesmo resultado, sem chamadas de rede, sem sais aleatórios e sem atalhos dependentes de data. Verificações comuns incluem a codificação de Hello café para Hello caf=C3=A9, e a decodificação dessa string de volta à frase original.
O que é quoted-printable e o que esta ferramenta retorna
Quoted-printable é uma codificação de transferência de conteúdo definida para MIME, para que dados majoritariamente textuais possam trafegar por caminhos de correio de 7 bits ou restritos, sem se tornarem Base64 opaco. Caracteres ASCII imprimíveis seguros geralmente aparecem como eles mesmos, o sinal de igual é reservado como o introdutor de escape, e qualquer outro octeto é escrito como um sinal de igual seguido de dois dígitos hexadecimais.
Quebras de linha leves — um sinal de igual no fim de uma linha antes de um CRLF — permitem que codificadores mantenham cada linha codificada dentro do limite clássico de setenta e seis caracteres, sem inserir quebras de linha rígidas no texto decodificado.
Esta página sempre segue esse contrato para texto UTF-8: o modo encode codifica sua string em UTF-8, mapeia cada byte para um literal ou um token de igual-hexadecimal, e insere quebras leves para que as linhas permaneçam dentro do limite; o modo decode remove as quebras leves, expande pares de igual-hexadecimal em bytes, e rejeita sequências de escape incompletas ou não hexadecimais, em vez de adivinhar.
Onde o quoted-printable aparece no e-mail
Desenvolvedores encontram o quoted-printable ao inspecionar corpos de e-mail marcados Content-Transfer-Encoding: quoted-printable, criar mensagens internacionais em texto simples para gateways SMTP, ou depurar por que um acento de café virou pares de igual-hexadecimal em um dump bruto de mensagem. Equipes de frontend e suporte decodificam trechos QP durante a investigação de tickets, sem colar dados em scripts improvisados que lidam mal com quebras de linha leves.
Serviços de backend codificam amostras de configuração ou pequenas strings multilíngues antes de colocá-las em partes MIME onde o transporte limpo de 8 bits não é garantido. Engenheiros de qualidade geram pares determinísticos de codificação e decodificação para testes de contrato, para que uma biblioteca de correio que afirma suportar QP não possa mudar silenciosamente as regras de caixa hexadecimal ou descartar quebras leves.
Combine-a com auxiliares de Base64 quando precisar de codificações de transferência relacionadas, e com outras ferramentas de texto ao montar um pequeno laboratório de codificadores gratuitos e determinísticos.
Casos de uso
Depuração de corpo de e-mail
Codifique ou decodifique trechos MIME quoted-printable de mensagens brutas, para que acentos e quebras de linha leves correspondam ao que os clientes de correio exibem.
Preparação para gateways legados
Transforme texto simples em UTF-8 em quoted-printable seguro para transporte antes de enviar por caminhos restritos de 7 bits.
Perguntas frequentes
Como o quoted-printable é diferente do Base64?
O quoted-printable mantém a maior parte do ASCII legível e só escapa octetos não seguros como =XX. O Base64 codifica todo byte em um alfabeto opaco e é melhor para binário puro.
O que acontece se uma sequência de escape estiver malformada?
=XX incompleto, dígitos não hexadecimais após =, ou um = isolado no final são todos rejeitados, em vez de adivinhados.
O resultado é determinístico?
Sim. O mesmo texto e o mesmo modo sempre produzem o mesmo resultado, sem rede, aleatoriedade ou comportamento dependente de data.
Por que o é vira =C3=A9 no quoted-printable?
Porque em UTF-8 o é ocupa dois bytes, C3 e A9. O quoted-printable escreve cada byte fora do ASCII simples como um sinal de igual seguido de dois dígitos hexadecimais, então uma letra acentuada vira seis caracteres.
O que é uma quebra de linha suave no quoted-printable?
É um sinal de igual no fim de uma linha codificada. Ele divide uma linha longa sem criar uma quebra de verdade, e na decodificação a ferramenta remove esse sinal e junta as partes de novo.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/enc/quoted-printable \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello café"}'const res = await fetch("https://api.kit.forhosting.com/enc/quoted-printable", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello café"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/quoted-printable",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello café"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/quoted-printable", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello café"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello café"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/quoted-printable", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"text": "Hello café"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.quoted_printable",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Escolha encode para transformar uma mensagem, fragmento de assunto, ou string de teste em QP seguro para transporte, ou escolha decode para recuperar o texto original a partir de um payload quoted-printable que você já tem. Use gratuitamente no navegador para depuração de correio e prática de MIME, ou chame a API por US$ 0,002 a cada solicitação bem-sucedida quando pipelines precisarem de transformações quoted-printable reproduzíveis em CI e serviços de backend.
O que é quoted-printable e o que esta ferramenta retorna
A resposta em JSON inclui result para a string transformada, mode ecoando encode ou decode, encoding fixado em quoted-printable, e input_bytes mais output_bytes, para que você possa verificar tamanhos em testes. Não há caminho de streaming nem reparo silencioso de QP quebrado: ou a string é texto quoted-printable válido, ou a solicitação falha com invalid_input. Se você precisa de empacotamento binário opaco, prefira endpoints Base64 ou Base64url; esta página é para a codificação QP legível, orientada a e-mail, que clientes de correio e bibliotecas MIME já esperam.
Como texto e modo são interpretados e como os resultados permanecem reproduzíveis
O encode aceita qualquer string Unicode, converte com o TextEncoder da plataforma para bytes UTF-8, e então emite quoted-printable com escapes hexadecimais em maiúsculas e quebras leves de CRLF. Depois que os bytes são recuperados, uma decodificação UTF-8 fatal garante que lixo binário não vire texto ilegível (mojibake). O campo de payload preferido é text, com os aliases input, value e s, para que formulários, strings de consulta e clientes de SDK possam reutilizar o mesmo contrato sem renomear colunas. Mode assume encode por padrão e aceita decode explicitamente; os aliases op, direction e action mapeiam para a mesma alternância, para scripts que já usam esses nomes. O decode exige uma string QP bem formada: um sinal de igual isolado no fim da entrada, um sinal de igual seguido de apenas um caractere, ou um sinal de igual seguido de dígitos não hexadecimais, tudo isso falha com uma mensagem clara de invalid_input, nomeando o escape malformado. Combine a execução gratuita no navegador desta página com a API paga quando precisar do mesmo resultado matemático dentro de um pipeline automatizado, sem reimplementar as tabelas quoted-printable você mesmo. Entradas inválidas retornam invalid_input e não são cobradas, o que mantém a validação barata enquanto as transformações bem-sucedidas permanecem com um preço fixo por item.
Onde o quoted-printable se encaixa em e-mail, MIME e fixtures de teste
Educadores usam a mesma ferramenta ao ensinar a diferença entre a opacidade do Base64 e a legibilidade do quoted-printable para payloads majoritariamente textuais. Nesta página o trabalho roda inteiramente no seu navegador; pela API, cada consulta bem-sucedida custa US$ 0,002, a validação com falha não é cobrada, e nada é armazenado depois que a resposta é devolvida. Essa divisão — exploração interativa gratuita e uma API paga e idêntica — segue o padrão do resto do catálogo tier A do KIT e permite passar de uma demonstração em sala de aula para um pipeline automatizado sem mudar o resultado codificado.
Casos de integração
Geração de fixtures MIME
Produza strings QP reproduzíveis para testes unitários, arquivos golden, e verificações de integração de SMTP ou IMAP.
Perguntas técnicas
Quanto custa o codificador quoted-printable?
É gratuito no navegador, nesta página. Pela API, uma solicitação bem-sucedida custa US$ 0,002; entradas inválidas não são cobradas.
Quais modos são suportados?
mode=encode (padrão) transforma texto simples em quoted-printable. mode=decode transforma uma string QP de volta em texto UTF-8.