Eliminar caracteres de control
Elimine los caracteres de control invisibles que esconde un texto pegado: Hello, un byte nulo, World, un timbre y un signo de exclamación quedan como HelloWorld!, con 2 caracteres eliminados. Espacios, tabulaciones y saltos de línea se mantienen. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- Hello World!
- Texto
- HelloWorld!
- Original
- Hello World!
- Longitud
- 11
- Eliminado
- 2
Esta herramienta para eliminar caracteres de control toma cualquier cadena de texto no vacía y devuelve el mismo contenido con los caracteres de control no imprimibles eliminados. Los espacios ordinarios, las tabulaciones y los saltos de línea se mantienen, de modo que la estructura de párrafos y el espaciado legible sobreviven a la limpieza. El motor es totalmente determinista: un solo paso fijo de eliminación por rangos Unicode, sin llamadas a la red, sin aleatoriedad y sin dependencia del reloj. Las letras, los dígitos, la puntuación y los símbolos Unicode imprimibles conservan su orden relativo; solo desaparecen los controles C0 invisibles (excepto tabulación, LF y CR), el carácter DEL y los controles C1.
Qué significa eliminar caracteres de control y qué contiene la respuesta
Eliminar caracteres de control en esta capacidad significa borrar puntos de código que no se imprimen y que a menudo rompen analizadores, registros, bases de datos y flujos de copiar y pegar. El motor elimina el bloque de control C0 excepto los tres controles de espacio en blanco que casi siempre conviene conservar: tabulación horizontal (U+0009), salto de línea (U+000A) y retorno de carro (U+000D). También elimina DEL (U+007F) y todo el bloque de control C1 (U+0080 hasta U+009F).
El espacio ordinario (U+0020) nunca se elimina. Hello seguido de un byte nulo y World se convierte en HelloWorld; una nota de dos líneas con un carácter bell entre palabras conserva su salto de línea y pierde solo el bell. No hay opción para quitar también los espacios, ningún modo que colapse secuencias de espacio en blanco, y ninguna conversión silenciosa de null a un éxito vacío.
Dónde encaja limpiar caracteres de control en higiene de datos, publicación y software
Los estudiantes se encuentran con la limpieza de caracteres de control cuando un laboratorio de programación importa muestras CSV o de registro que contienen bytes nulos, alimentaciones de formulario o secuencias de escape sobrantes de volcados de terminal. Los docentes pueden pregenerar claves de respuesta que muestren la forma limpia esperada sin confiar en macros de oficina opacas que reescriben los finales de línea de forma distinta en cada máquina.
Los ingenieros de datos usan el mismo contrato para sanitizar campos antes de cargar almacenes, índices de búsqueda o colas de mensajes que rechazan o truncan en silencio un NUL incrustado. Los equipos de soporte y operaciones pegan fragmentos ruidosos de tickets de varias líneas desde consolas serie, exportaciones SCADA o descargas de mainframes heredados y necesitan texto legible sin códigos invisibles que rompan los sistemas de tickets.
Editores de CMS y publicadores limpian contenido pegado que se ve bien en pantalla pero arrastra bytes C1 de codificaciones antiguas, evitando feeds rotos y ordenaciones extrañas. Combínela con herramientas de eliminar espacio en blanco, quitar acentos o sanitizar HTML cuando construya un pequeño laboratorio de ayudantes de texto gratuitos y deterministas para formularios, preparación de CMS e higiene de datos.
Qué puede hacer con ella
Limpiar importaciones contaminadas por binario
Quite bytes nulos, bell y otros controles C0/C1 de CSV, registros o exportaciones copiadas de sistemas binarios o heredados, conservando espacios y saltos de línea legibles.
Higiene de pegado en tickets y CMS
Elimine códigos de control invisibles de volcados de consola y pegados de editores antiguos para que tickets, búsqueda y sistemas de contenido acepten el texto con limpieza.
Preguntas frecuentes
¿Cuánto cuesta la herramienta para eliminar caracteres de control?
Es gratis en su navegador en esta página.
¿Qué caracteres se eliminan?
Controles C0 excepto tabulación, salto de línea y retorno de carro; DEL (U+007F); y controles C1 (U+0080–U+009F). Se conservan espacios y texto imprimible.
¿Se conservan los espacios y los saltos de línea?
Sí. El espacio ordinario, la tabulación, LF y CR nunca se eliminan. Solo se quitan caracteres de control no imprimibles fuera de ese conjunto.
¿Qué ocurre si el campo text está vacío?
Debe proporcionar una cadena no vacía; los campos de formulario en blanco no se convierten en éxitos silenciosos.
¿El resultado es el mismo cada vez?
Sí. La transformación es una eliminación de caracteres pura y determinista, sin red, aleatoriedad ni dependencia del reloj, así que la misma entrada siempre produce la misma salida.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
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)Ejemplo de solicitud
{
"text": "Hello\u0000World\u0007 — line two"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.remove_control_chars",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_chars | 100000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
La entrada vacía se rechaza con un error claro de invalid_input para que un campo de formulario en blanco no pueda convertirse en un éxito vacío silencioso. Úsela gratis en el navegador cuando pegue exportaciones ruidosas de sistemas heredados, registros serie o archivos contaminados por binario, o llame a la API a $0.002 por solicitud exitosa cuando necesite una limpieza reproducible en CI, canalizaciones ETL o demostraciones docentes.
Qué significa eliminar caracteres de control y qué contiene la respuesta
La respuesta es deliberadamente pequeña y estable: text contiene el resultado limpio que copiará o guardará, original repite exactamente la entrada para que pueda auditar qué cambió, length reporta el conteo de caracteres del resultado, removed cuenta cuántos caracteres de control desaparecieron (largo original menos largo del resultado), y method es la etiqueta fija remove_control_chars para registros y canalizaciones de varias herramientas. El motor construye una cadena limpia completa dentro del largo admitido o rechaza la solicitud con invalid_input. Los casos rechazados incluyen un campo text ausente, un valor null, una cadena vacía, objetos y arreglos que no son texto plano, y cualquier carga útil más larga que el conteo máximo de caracteres documentado.
Cómo se lee el campo text y cómo se mantiene reproducible el resultado
El valor debe ser una cadena no vacía; los números finitos y los bigints se convierten primero a cadena, así que un código de producto simple escrito como número aún se procesa limpiamente tras la conversión a dígitos decimales. La conversión usa un solo reemplazo de expresión regular que coincide únicamente con los rangos de control documentados —sin tablas de configuración regional, sin modelo de aprendizaje automático, y sin excepciones que dependan de la fecha. Como el algoritmo es puro y preserva el orden de cada carácter que no coincide, dos sistemas que llaman con la misma entrada siempre reciben el mismo text, length y removed, lo que hace fiables las pruebas doradas y las diferencias de soporte. El campo preferido es text, pero se aceptan los alias input, string, value, content y s para que cadenas de consulta, hojas de cálculo y formularios tipados puedan reutilizar el mismo contrato sin renombrar columnas. Los booleanos, los objetos planos y los arreglos se rechazan con un mensaje claro para que un cuerpo JSON equivocado no se convierta en la palabra true ni en un volcado de objeto inútil. Una cadena vacía siempre es invalid_input: la promesa del producto es transformar texto, no inventar un éxito en blanco a partir de un campo ausente. El largo está limitado a cien mil caracteres para que un pegado desbocado no pueda monopolizar un Worker; las cargas útiles más largas fallan con un mensaje explícito de límite en lugar de un recorte silencioso truncado. Combine la ejecución gratuita en el navegador de esta página con la API de pago cuando necesite la misma cadena depurada dentro de una canalización automatizada sin enviar sus propios ayudantes de eliminación de controles.
Dónde encaja limpiar caracteres de control en higiene de datos, publicación y software
En esta página el trabajo se ejecuta enteramente en su navegador; a través de la API cada conversión exitosa cuesta $0.002, la validación fallida no se cobra y no se guarda nada después de devolver la respuesta. Esa división —exploración interactiva gratuita y una API de pago idéntica— coincide con el resto del catálogo de nivel A del KIT y le permite pasar de una demostración de aula a una canalización automatizada sin cambiar el resultado de la cadena.
Casos de integración
Fixtures deterministas de canalización
Genere cadenas reproducibles sin controles para pruebas unitarias, archivos dorados y aserciones de CI sobre lógica de ingesta y sanitización.