Eliminar caracteres no ASCII
Café pasa a Cafe, Straße a Strasse y São Paulo a Sao Paulo, mientras se borran emojis, caracteres CJK, signos de moneda y comillas tipográficas. Texto limpio para sistemas antiguos, exportaciones CSV y servidores de correo exigentes. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- Hello, café 🎉!
- Resultado
- Hello, cafe !
- Longitud
- 13
- Longitud original
- 15
- Eliminado
- 1
Los sistemas heredados, los protocolos serie, los exportadores CSV y los relés de correo exigentes siguen fallando cuando un solo emoji, una comilla tipográfica o una letra acentuada entra en un campo que tratan como ASCII de siete bits. Esta herramienta para eliminar caracteres no ASCII toma cualquier cadena no vacía, pliega los acentos latinos a sus bases planas y después borra todo carácter restante fuera del rango ASCII, de modo que el resultado es texto limpio de siete bits. Desaparecen emoji, CJK, signos de moneda y símbolos tipográficos; café pasa a cafe; el ASCII ya plano se devuelve sin cambios.
Cómo funciona por dentro la eliminación de no ASCII
Quitar lo no ASCII es un pipeline determinista breve, no una conjetura de locale ni una reescritura por aprendizaje automático. Primero el motor aplica la forma de normalización Unicode D, que separa la letra base de sus marcas diacríticas combinantes: é pasa a e más un agudo combinante, ñ a n más una tilde combinante y ü a u más una diéresis combinante. Segundo, se elimina toda marca combinante en los rangos habituales, dejando las bases latinas del europeo occidental y central y de muchas letras vietnamitas con tono.
Tercero, una tabla fija de transliteración reescribe letras que sobreviven a NFD sin volverse ASCII: formas nórdicas e islandesas como ø, æ, ð y þ; la ese afilada alemana; ligaduras francesas y latinas œ; letras polacas y eslavas con trazo como ł y đ; y algunas bases maltesas y vietnamitas con cuerno. La tabla conserva mayúsculas cuando existen ambos casos, de modo que Æ pasa a AE y ß a ss.
Cuarto, un único recorrido conserva solo los puntos de código de U+0000 a U+007F y descarta el resto: emoji, CJK, cirílico, árabe, signos de moneda, comillas curvas, rayas largas y símbolos sobrantes. Letras ASCII, dígitos, puntuación, espacios, tabulaciones y saltos de línea conservan su orden original. El algoritmo informa cuántos puntos no ASCII restantes se borraron y si la cadena cambió.
Las cadenas vacías fallan la validación antes de cualquier transformación. Como la ruta es puro parse sobre cadenas, la latencia se mantiene submilisegundo en formularios típicos y el modelo de coste publicado es analítico, no basado en tokens de modelo.
Qué envía usted y qué recibe de vuelta
Envíe un único campo obligatorio llamado text con la cadena no vacía que desea dejar en ASCII. Comprobaciones clásicas: Café pasa a Cafe, naïve a naive, São Paulo a Sao Paulo, Straße a Strasse, y una cadena como Hello, café 🎉 pasa a Hello, cafe con el emoji desaparecido. El ASCII ya plano como ABC-123 vuelve igual, changed es false y removed es cero, útil como detector de no-op en guardas ETL.
El motor no colapsa espacios sobrantes tras un símbolo borrado, no cambia mayúsculas y no inventa grafías latinas para cirílico o CJK: esos sistemas de escritura se eliminan. Esa es la intención de esta página: ASCII de siete bits para sistemas heredados, no un transliterador completo.
Dónde aparece esta herramienta en el trabajo real
Los equipos de operaciones pegan volcados de consola, fragmentos de tickets y nombres de archivo de proveedores que recogen emoji, comillas tipográficas o signos de moneda del chat y el correo, y necesitan un campo que acepte un mainframe, un terminal POS o un salto SMTP de siete bits. Los ingenieros de datos que limpian exportaciones CRM y cargas de almacén suelen forzar columnas de texto libre a ASCII antes de unir por claves blandas o escribir archivos para herramientas que aún asumen Latin-1 o incluso 7 bits.
Editores de CMS y publicadores limpian títulos pegados que se ven bien en pantalla pero llevan rayas tipográficas y restos CJK que rompen consumidores RSS antiguos o reglas de nombre de archivo. Los equipos de producto convierten nombres visibles a alternativas ASCII cuando un proveedor posterior rechaza cualquier cosa fuera de 0x00–0x7F, y aún así quieren que José pase a Jose y no a Js. Esta página no es la misma búsqueda que quitar acentos del texto: esa hermana conserva emoji y CJK y solo pliega diacríticos.
Tampoco es eliminar caracteres de control, que conserva Unicode imprimible y solo borra códigos C0/C1. Si más adelante necesita slugs URL con guiones, plegado de mayúsculas o romanización fonética de sistemas no latinos, trátelos como landings distintas. Mantenga las peticiones bajo el tope de longitud documentado, fije la cadena result en las pruebas y obtendrá ASCII reproducible sin montar una biblioteca de codificación propia.
Qué puede hacer con ella
Sanitizar campos para sistemas heredados de siete bits
Pliegue acentos y elimine emoji, CJK y símbolos tipográficos para que mainframe, POS y SMTP acepten el valor como ASCII plano.
Limpiar CSV, registros y columnas de almacén
Fuerce columnas de texto libre a ASCII antes de uniones, entregas de archivos y herramientas que aún asumen Latin-1 o 7 bits.
Preguntas frecuentes
¿Qué hace eliminar caracteres no ASCII?
Pliega los acentos latinos a letras planas y después borra todo carácter restante fuera de U+0000–U+007F —emoji, CJK, signos de moneda y símbolos tipográficos— para dejar ASCII limpio de siete bits.
¿En qué se diferencia de quitar acentos?
Quitar acentos conserva emoji, CJK y otros sistemas no mapeados y solo simplifica diacríticos. Esta herramienta también elimina esos restos no ASCII para que los sistemas heredados reciban solo ASCII.
¿Qué ocurre con emoji, CJK y comillas tipográficas?
Se eliminan tras plegar los acentos. Una cadena como Hello, café 🎉 pasa a Hello, cafe (el emoji desaparece; los espacios sobrantes no se colapsan).
¿Qué ocurre si envío texto vacío?
Las cadenas vacías se rechazan para que los clientes detecten campos ausentes en lugar de recibir un resultado vacío silencioso.
¿Cuánto cuesta?
La herramienta del navegador es gratuita y se ejecuta en local.
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-non-ascii \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Café 🎉 — São Paulo"}'const res = await fetch("https://api.kit.forhosting.com/str/remove-non-ascii", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Café 🎉 — São Paulo"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/remove-non-ascii",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Café 🎉 — São Paulo"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/remove-non-ascii", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Café 🎉 — São Paulo"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Café 🎉 — São Paulo"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/remove-non-ascii", 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": "Café 🎉 — São Paulo"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.remove_non_ascii",
"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 invalid_input en lugar de un éxito en blanco silencioso. Las llamadas API correctas cuestan $0.002 por ítem; los fallos de validación no se facturan.
Cómo funciona por dentro la eliminación de no ASCII
No hay parámetro de locale, ni muestreo aleatorio, ni reloj: la misma entrada produce siempre el mismo JSON. Las cargas extremadamente largas por encima del tope documentado también fallan con invalid_input para que una sola petición no monopolice la memoria del Worker.
Qué envía usted y qué recibe de vuelta
Se aceptan alias como input, value, data, s, message, string, content y body por comodidad al conectar clientes antiguos o columnas de hoja de cálculo. Números y booleanos se convierten a su forma decimal o true/false; objetos, arrays, NaN e Infinity se rechazan con invalid_input. En caso de éxito la respuesta repite el text original, el result solo ASCII, la length del resultado, original_length, un recuento removed de puntos no ASCII restantes eliminados tras plegar acentos, un booleano changed y operation con valor remove_non_ascii. Use el formulario gratuito del navegador para pegar y copiar, y llame al mismo contrato desde scripts cuando depure líneas de registro, columnas CSV o payloads de API. El precio de las llamadas API correctas es la base publicada de $0.002 por ítem; los fallos de validación, incluido el text vacío, no consumen saldo prepago.
Dónde aparece esta herramienta en el trabajo real
Como esta capacidad es un motor de parse puro, el precio de API es la base publicada de $0.002 por ítem correcto y la validación fallida no consume saldo.
Casos de integración
Fixtures deterministas e higiene de pegado en CMS
Obtenga el mismo resultado ASCII en el navegador y en la API para pruebas golden, nombres de archivo y títulos pegados desde el chat.