Codificador e decodificador UTF-7
Codifique texto em UTF-7 para que passe por canais de apenas sete bits: café vira caf+AOk- e, ao decodificar, volta a ser a palavra original. As letras do inglês continuam legíveis; só os demais caracteres vão para trechos curtos. 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
- café
- Modo de cálculo
- Encode
- Resultado
- caf+AOk-
- Codificação
- utf-7
- Comprimento da entrada
- 4
- Comprimento da saída
- 8
Este codificador UTF-7 converte texto Unicode simples na transformação UTF-7 segura em sete bits definida no RFC 2152 e decodifica cadeias UTF-7 de volta para Unicode legível. O motor é 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 da data. Verificações comuns incluem codificar café em caf+AOk- e decodificar essa cadeia de volta à palavra original.
O que é UTF-7 e o que esta ferramenta devolve
UTF-7 é uma codificação no estilo de transferência de conteúdo para Unicode, concebida para que o texto pudesse atravessar sistemas que só garantiam segurança ASCII de sete bits. Caracteres do conjunto direto — letras, dígitos, uma lista curta de pontuação, ASCII imprimível opcional e espaço em branco comum — aparecem como eles mesmos, de modo que a prosa em inglês permanece legível na forma codificada.
Qualquer caractere fora desse conjunto, incluindo letras latinas acentuadas, grego, CJK, emoji e outros pontos de código fora do BMP, é reunido em um trecho deslocado: um sinal de mais, um corpo Base64 modificado sem sinais de igual de preenchimento e um hífen terminador opcional quando o próximo caractere seria absorvido no alfabeto Base64. Um sinal de mais literal é um caso especial escrito como mais-hífen para nunca iniciar um deslocamento acidental.
Esta página segue sempre o contrato RFC 2152 para texto simples: o modo encode percorre pontos de código Unicode, deixa passar caracteres diretos, empacota trechos não diretos como unidades UTF-16 big-endian e emite a forma Base64 deslocada; o modo decode copia o texto direto, expande trechos deslocados e rejeita corpos Base64 vazios ou incompletos em vez de adivinhar.
Onde o UTF-7 ainda aparece
Desenvolvedores encontram UTF-7 ao inspecionar codificações históricas de e-mail, reproduzir casos de interoperabilidade dos exemplos RFC 2152 como a sequência de rosto sorridente Hi Mom -+Jjo!, ou confirmar que um acento em café vira um trecho deslocado curto em vez de Base64 opaco para a mensagem inteira. Equipes de frontend e suporte decodificam trechos UTF-7 na investigação de tickets sem colar dados em scripts ad hoc que tratam mal o terminador hífen ou interpretam mais-hífen como um deslocamento vazio.
Serviços backend codificam amostras de configuração ou strings multilíngues curtas antes de colocá-las em caminhos restritos de sete bits onde o transporte limpo de oito bits não é garantido. Engenheiros de qualidade geram pares determinísticos de encode e decode para testes de contrato, de modo que uma biblioteca que afirme suportar UTF-7 não possa alterar em silêncio as regras do terminador nem omitir caracteres residuais após um trecho deslocado.
Educadores usam a mesma ferramenta ao ensinar a diferença entre dumps hexadecimais de bytes UTF-8, escapes equals-hex de quoted-printable e Base64 deslocado por sinal de mais do UTF-7 para cargas majoritariamente textuais. Combine com auxiliares quoted-printable e 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 e-mail legado
Codifique ou decodifique trechos UTF-7 de mensagens históricas para que acentos e trechos Base64 deslocados coincidam com o que gateways antigos esperavam.
Preparação de caminhos de sete bits
Transforme texto Unicode simples em UTF-7 seguro para o transporte antes de enviar por canais restritos apenas ASCII.
Perguntas frequentes
Como o UTF-7 difere de Base64 ou UTF-8?
UTF-8 é uma codificação por bytes de Unicode. Base64 codifica cada byte em um alfabeto opaco. UTF-7 mantém a maior parte do ASCII legível e só desloca caracteres não diretos para trechos Base64 com sinal de mais de unidades UTF-16BE.
O que acontece se uma sequência de deslocamento estiver malformada?
Um mais final sozinho, um corpo Base64 vazio após o mais ou um comprimento de bytes decodificados ímpar são todos rejeitados em vez de adivinhados.
O resultado é determinístico?
Sim. O mesmo text e mode sempre produzem o mesmo resultado, sem rede, aleatoriedade ou comportamento dependente da data.
Por que café vira caf+AOk- em UTF-7?
As letras c, a e f fazem parte do conjunto direto e ficam como estão. O é não faz, então entra em um trecho deslocado: um sinal de mais, um curto bloco em Base64 sem preenchimento e um hífen de fechamento.
Este é o mesmo UTF-7 dos nomes de pasta do IMAP?
Não. O UTF-7 modificado do IMAP começa os trechos com um e comercial e usa outro alfabeto. Esta ferramenta segue a RFC 2152 para texto comum, em que os trechos começam com o sinal de mais.
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/utf7 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"café"}'const res = await fetch("https://api.kit.forhosting.com/enc/utf7", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "café"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/utf7",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "café"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/utf7", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"café"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"café"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/utf7", 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": "café"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.utf7",
"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
Use grátis no navegador para depurar e-mail e praticar Unicode, ou chame a API a US$ 0,002 por solicitação bem-sucedida quando pipelines precisarem de transformações UTF-7 reproduzíveis em CI e serviços backend.
O que é UTF-7 e o que esta ferramenta devolve
A resposta JSON inclui result para a cadeia transformada, mode ecoando encode ou decode, encoding fixo em utf-7, e input_length mais output_length medidos em comprimento de string JavaScript para que testes possam afirmar tamanhos. Não há caminho de streaming nem reparo silencioso de deslocamentos quebrados: ou a cadeia é UTF-7 válido ou a solicitação falha com invalid_input. Se você precisa de empacotamento binário opaco, prefira endpoints Base64 ou Base64url; se precisa de UTF-7 modificado IMAP para nomes de caixa de correio com introdutor ampersand, esse é outro alfabeto e não é esta página.
Como text e mode são lidos e como os resultados permanecem reproduzíveis
Encode aceita qualquer string Unicode, percorre pontos de código para que pares substitutos fora do plano multilíngue básico permaneçam intactos, emite caracteres Set D e Set O e espaço em branco como eles mesmos, mapeia um mais solto para mais-hífen e envolve trechos não diretos em Base64 modificado deslocado. Depois que os bytes são recuperados, eles são interpretados como unidades de código UTF-16BE e remontados em uma string JavaScript. O campo de payload preferido é text, com aliases input, value e s, para que formulários, query strings e clientes SDK reutilizem o mesmo contrato sem renomear colunas. Mode tem padrão encode e aceita decode de forma explícita; aliases op, direction e action mapeiam para o mesmo comutador em scripts que já usam esses nomes. Decode exige uma string UTF-7 bem formada: um mais sozinho no fim da entrada, um mais seguido de um caractere não Base64 que não seja hífen, um corpo Base64 vazio ou um corpo Base64 que se expande para um número ímpar de bytes falham todos com uma mensagem clara invalid_input que nomeia a sequência de deslocamento malformada. Combine a execução gratuita no navegador desta página com a API paga quando precisar do resultado matemático idêntico dentro de um pipeline automatizado sem reimplementar você mesmo as tabelas UTF-7. Entradas inválidas devolvem invalid_input e não são cobradas, o que mantém a validação barata enquanto transformações bem-sucedidas seguem um preço fixo por item de US$ 0,002.
Onde o UTF-7 se encaixa em e-mail, gateways legados e fixtures de teste
Nesta página o trabalho roda inteiramente no seu navegador; pela API cada consulta bem-sucedida custa US$ 0,002, validação falha não é cobrada e nada é armazenado após a resposta. Essa divisão — exploração interativa gratuita e uma API paga idêntica — combina com o restante do catálogo KIT de nível A e permite passar de uma demonstração em sala para um pipeline automatizado sem mudar o resultado codificado.
Casos de integração
Geração de fixtures RFC 2152
Produza strings UTF-7 reproduzíveis para testes unitários, arquivos golden e checagens de interoperabilidade contra exemplos do RFC.
Perguntas técnicas
Quanto custa o codificador UTF-7?
É grátis no seu 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 UTF-7. mode=decode transforma uma string UTF-7 de volta em texto Unicode.