Remover caracteres de controle
Apague os caracteres de controle invisíveis escondidos num texto colado: Hello, um byte nulo, World, um sinal sonoro e um ponto de exclamação viram HelloWorld!, com 2 caracteres removidos. Espaços, tabulações e quebras de linha são mantidos. 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 World!
- Texto
- HelloWorld!
- Original
- Hello World!
- Comprimento
- 11
- Removido
- 2
Esta ferramenta para remover caracteres de controle recebe qualquer cadeia de texto não vazia e devolve o mesmo conteúdo com os caracteres de controle não imprimíveis eliminados. Espaços comuns, tabulações e quebras de linha permanecem, de modo que a estrutura de parágrafos e o espaçamento legível sobrevivem à limpeza. O motor é totalmente determinístico: um único passo fixo de exclusão por intervalos Unicode, sem chamadas de rede, sem aleatoriedade e sem dependência do relógio. Letras, dígitos, pontuação e símbolos Unicode imprimíveis mantêm a ordem relativa; desaparecem apenas os controles C0 invisíveis (exceto tabulação, LF e CR), o caractere DEL e os controles C1.
O que significa remover caracteres de controle e o que a resposta contém
Remover caracteres de controle nesta capacidade significa apagar pontos de código que não imprimem e que frequentemente quebram parsers, logs, bancos de dados e fluxos de copiar e colar. O motor remove o bloco de controle C0 exceto os três controles de espaço em branco que quase sempre se deseja manter: tabulação horizontal (U+0009), line feed (U+000A) e carriage return (U+000D). Também remove DEL (U+007F) e todo o bloco de controle C1 (U+0080 até U+009F).
O espaço comum (U+0020) nunca é removido. Hello seguido de um byte nulo e World vira HelloWorld; uma nota de duas linhas com um caractere bell entre palavras mantém a quebra de linha e perde só o bell. Não há opção de também remover espaços, nenhum modo que colapse sequências de espaço em branco, e nenhuma coerção silenciosa de null em sucesso vazio.
Onde a limpeza de caracteres de controle se encaixa em higiene de dados, publicação e software
Estudantes encontram a limpeza de caracteres de controle quando um laboratório de programação importa amostras CSV ou de log com bytes nulos, form feeds ou sequências de escape sobrando de dumps de terminal. Professores podem pré-gerar chaves de resposta que mostram a forma limpa esperada sem confiar em macros opacas de escritório que reescrevem finais de linha de modo diferente em cada máquina.
Engenheiros de dados usam o mesmo contrato para sanitizar campos antes de carregar data warehouses, índices de busca ou filas de mensagens que rejeitam ou truncam em silêncio um NUL embutido. Equipes de suporte e operações colam fragmentos ruidosos de tickets multilinha de consoles seriais, exportações SCADA ou downloads de mainframes legados e precisam de texto legível sem códigos invisíveis que quebrem sistemas de tickets.
Editores de CMS e publicadores limpam conteúdo colado que parece correto na tela mas carrega bytes C1 de codificações antigas, evitando feeds quebrados e ordenações estranhas. Combine com ferramentas de remover espaços, remover acentos ou sanitizar HTML ao montar um pequeno laboratório de auxiliares de texto gratuitos e determinísticos para formulários, preparação de CMS e higiene de dados.
Casos de uso
Limpar importações contaminadas por binário
Remova bytes nulos, bell e outros controles C0/C1 de CSV, logs ou exportações copiadas de sistemas binários ou legados, mantendo espaços e quebras de linha legíveis.
Higiene de colagem em tickets e CMS
Elimine códigos de controle invisíveis de dumps de console e colagens de editores antigos para que tickets, busca e sistemas de conteúdo aceitem o texto de forma limpa.
Perguntas frequentes
Quais caracteres são removidos?
Controles C0 exceto tabulação, line feed e carriage return; DEL (U+007F); e controles C1 (U+0080–U+009F). Espaços e texto imprimível são mantidos.
Espaços e quebras de linha são preservados?
Sim. Espaço comum, tabulação, LF e CR nunca são apagados. Somente caracteres de controle não imprimíveis fora desse conjunto são removidos.
O que acontece se o campo text estiver vazio?
É preciso fornecer uma cadeia não vazia; campos de formulário em branco não viram sucessos silenciosos.
O resultado é o mesmo todas as vezes?
Sim. A transformação é uma exclusão de caracteres pura e determinística, sem rede, aleatoriedade ou dependência de relógio, então a mesma entrada sempre produz a mesma saída.
Por que remover caracteres que nem aparecem na tela?
Porque eles quebram sistemas mesmo invisíveis. Um byte nulo embutido pode fazer um banco de dados, um índice de busca ou uma fila de mensagens recusar ou cortar o valor, e bytes de codificações antigas estragam feeds e a ordenação.
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/str/remove-control-chars \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello\u0000World\u0007 — line two"}'const res = await fetch("https://api.kit.forhosting.com/str/remove-control-chars", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello\u0000World\u0007 — line two"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/remove-control-chars",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello\u0000World\u0007 — line two"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/remove-control-chars", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello\\u0000World\\u0007 — line two"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello\u0000World\u0007 — line two"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/remove-control-chars", 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\u0000World\u0007 — line two"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.remove_control_chars",
"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.
Limites
max_chars | 100000 |
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
Entrada vazia é rejeitada com um erro claro de invalid_input para que um campo de formulário em branco não se torne um sucesso vazio silencioso. Use grátis no navegador ao colar exportações ruidosas de sistemas legados, logs seriais ou arquivos contaminados por binário, ou chame a API a US$ 0,002 por solicitação bem-sucedida quando precisar de limpeza reproduzível em CI, pipelines ETL ou demonstrações didáticas.
O que significa remover caracteres de controle e o que a resposta contém
A resposta é deliberadamente pequena e estável: text guarda o resultado limpo que você copiará ou armazenará, original ecoa exatamente a entrada para auditar o que mudou, length informa a contagem de caracteres do resultado, removed conta quantos caracteres de controle sumiram (comprimento original menos comprimento do resultado), e method é a tag fixa remove_control_chars para logs e pipelines de várias ferramentas. O motor monta uma cadeia limpa completa dentro do comprimento suportado ou rejeita o pedido com invalid_input. Casos rejeitados incluem campo text ausente, valor null, cadeia vazia, objetos e arrays que não são texto simples, e qualquer payload maior que a contagem máxima de caracteres documentada. Se precisar de remoção total de espaço em branco, remoção de acentos, sanitização HTML ou minificação JSON, use essas ferramentas dedicadas; esta página responde apenas à limpeza de controles não imprimíveis com saída estável adequada a planilhas, testes unitários e consumidores de API que não devem inventar regras de classes de controle.
Como o campo text é lido e como o resultado permanece reproduzível
O valor deve ser uma cadeia não vazia; números finitos e bigints são convertidos primeiro em cadeia, assim um código de produto digitado como número ainda processa limpo após a conversão para dígitos decimais. A conversão usa um único replace de expressão regular que coincide só com os intervalos de controle documentados — sem tabelas de locale, sem modelo de aprendizado de máquina e sem exceções dependentes de data. O campo preferido é text, mas os aliases input, string, value, content e s são aceitos para que query strings, planilhas e formulários tipados reutilizem o mesmo contrato sem renomear colunas. Booleanos, objetos simples e arrays são rejeitados com mensagem clara para que um corpo JSON enganado não vire a palavra true nem um dump inútil de objeto. Cadeia vazia é sempre invalid_input: a promessa do produto é transformar texto, não inventar sucesso em branco a partir de campo ausente. O comprimento é limitado a cem mil caracteres para que um colar descontrolado não monopolize um Worker; payloads maiores falham com mensagem explícita de limite em vez de corte silencioso truncado. Combine a execução gratuita no navegador desta página com a API paga quando precisar da mesma cadeia limpa dentro de um pipeline automatizado sem enviar seus próprios auxiliares de remoção de controles.
Onde a limpeza de caracteres de controle se encaixa em higiene de dados, publicação e software
Nesta página o trabalho roda inteiramente no seu navegador; pela API cada conversão 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 API paga idêntica — combina com o restante do catálogo tier-A do KIT e permite ir de uma demo de sala de aula a um pipeline automatizado sem mudar o resultado da cadeia.
Casos de integração
Fixtures determinísticos de pipeline
Gere cadeias reproduzíveis sem controles para testes unitários, arquivos golden e asserções de CI sobre lógica de ingestão e sanitização.
Perguntas técnicas
Quanto custa a ferramenta para remover caracteres de controle?
É gratuita 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.