Codificador y decodificador yEnc
Codifica «Hello Usenet» en un fragmento yEnc enmarcado, con cabecera =ybegin y una línea =yend que lleva la suma de control 38A1E859, y decodifica esos fragmentos a texto. Cada byte se desplaza 42 en lugar de expandirse, así que ocupa mucho menos que Base64. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- Hello Usenet
- Modo de cálculo
- Encode
- Nombre
- hello.bin
- Codificación
- yenc
- Tamaño
- 12
- Crc32
- 38A1E859
- Recta
- 128
Este codificador yEnc convierte texto UTF-8 plano al formato de transferencia binaria de bajo coste usado en Usenet, y decodifica cargas yEnc enmarcados o en bruto de nuevo a texto legible. yEnc mantiene casi cada octeto como un solo carácter imprimible o extendido tras un desplazamiento fijo de cuarenta y dos, escapando solo un conjunto crítico reducido para que los datos binarios viajen en cuerpos de artículos NNTP con mucha menos expansión que Base64. El motor es totalmente determinista: el mismo texto, modo, nombre y longitud de línea producen siempre el mismo resultado, sin llamadas de red, sin sales aleatorias y sin atajos dependientes de la fecha. Las comprobaciones habituales incluyen codificar Hello Usenet en un fragmento de artículo enmarcado y decodificar ese fragmento de vuelta a la frase original.
Qué es yEnc y qué devuelve esta herramienta
yEnc es una codificación al estilo de transferencia de contenido pensada para que archivos binarios viajen dentro de artículos de Usenet sin la penalización de tamaño de un tercio de Base64. Cada byte de entrada se desplaza cuarenta y dos módulo doscientos cincuenta y seis; solo los valores críticos nulo, salto de línea, retorno de carro e igual se escapan anteponiendo un signo igual y sumando sesenta y cuatro antes de emitirlos.
Esta página sigue siempre ese contrato para texto UTF-8: el modo encode codifica su cadena en UTF-8, aplica el desplazamiento y los escapes críticos, envuelve líneas y emite cabeceras con un CRC calculado; el modo decode elimina las líneas de control, ignora CR y LF en el cuerpo, invierte los escapes, comprueba size y CRC cuando están presentes y rechaza secuencias de igual incompletas en lugar de adivinar.
Si necesita empaquetado opaco seguro para correo, prefiera los extremos Base64 o quoted-printable; esta landing es para la codificación yEnc orientada a Usenet que ya esperan los clientes de noticias y los posters binarios.
yEnc en Usenet, archivos binarios y soporte
Los equipos de frontend y soporte decodifican fragmentos yEnc durante la investigación de tickets sin pegar datos en scripts ad hoc que maltratan escapes críticos o saltos de línea suaves. Los servicios backend codifican cadenas multilingües cortas o muestras de configuración en yEnc enmarcado para pruebas de integración que deben coincidir con el desplazamiento y el diseño de cabecera de un poster real.
Los ingenieros de calidad generan pares deterministas de encode y decode para pruebas de contrato, de modo que una biblioteca que afirme soporte yEnc no pueda cambiar en silencio reglas de escape, polinomios CRC u orden de atributos de cabecera sin romper goldens. Combínelo con ayudantes Base64 y quoted-printable cuando necesite codificaciones de transferencia relacionadas, y con otras herramientas de texto cuando monte un pequeño laboratorio de codificadores gratuitos y deterministas.
Qué puede hacer con ella
Depuración de artículos Usenet
Codifique o decodifique fragmentos de artículos yEnc para que size en =ybegin, escapes del cuerpo y tráilers CRC-32 coincidan con lo que esperan los newsreaders.
Preguntas frecuentes
¿Cuánto cuesta el codificador yEnc?
Es gratis en su navegador en esta página.
¿En qué se diferencia yEnc de Base64?
yEnc desplaza cada byte en 42 y solo escapa unos pocos valores críticos, de modo que la sobrecarga es mucho menor que el alfabeto de cuatro caracteres de Base64. Se diseñó para cuerpos de artículos Usenet, no para MIME de correo.
¿Qué ocurre si un escape o el CRC están mal formados?
Se rechazan escapes '=' incompletos, desajustes de size y desajustes CRC-32 en lugar de adivinar.
¿Es determinista el resultado?
Sí. El mismo texto, modo, nombre y longitud de línea producen siempre el mismo resultado, sin red, aleatoriedad ni comportamiento dependiente de la fecha.
¿Qué bytes escapa yEnc?
Primero cada byte se desplaza 42. Si el resultado es uno de cuatro valores críticos, nulo, salto de línea, retorno de carro o el signo igual, se escribe como un signo igual seguido de ese valor más 64; todo lo demás queda en un solo carácter.
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/enc/yenc \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello Usenet"}'const res = await fetch("https://api.kit.forhosting.com/enc/yenc", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello Usenet"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/yenc",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello Usenet"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/yenc", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello Usenet"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello Usenet"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/yenc", 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 Usenet"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.yenc",
"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.
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
Úselo gratis en el navegador para practicar herramientas de Usenet y depurar artículos, o llame a la API a $0.002 por petición correcta cuando sus pipelines necesiten transformaciones yEnc reproducibles en CI y servicios backend.
Qué es yEnc y qué devuelve esta herramienta
Los codificadores insertan luego saltos de línea suaves para que las líneas del artículo se acerquen al ancho clásico de ciento veintiocho caracteres, y enmarcan el cuerpo con una línea =ybegin que lleva size, longitud de línea opcional y un nombre de archivo, más un tráiler =yend que suele incluir size y una suma de comprobación IEEE CRC-32. La respuesta JSON incluye result para la cadena transformada, mode que repite encode o decode, encoding fijo a yenc, size para la longitud del payload binario, name y crc32 opcionales, framed true cuando se usaron o detectaron cabeceras, e input_bytes más output_bytes para que pueda afirmar tamaños en pruebas. No hay ruta de streaming ni reparación silenciosa de yEnc roto: o la cadena es válida bajo estas reglas o la petición falla con invalid_input.
Cómo se leen text, mode, name y line y cómo se mantienen resultados reproducibles
Encode acepta cualquier cadena Unicode, la convierte con el TextEncoder de la plataforma a bytes UTF-8 y emite un fragmento de artículo yEnc enmarcado con CRC-32 en mayúsculas. Tras recuperar los bytes, una decodificación UTF-8 fatal evita que basura binaria se convierta en texto mojibake. El campo de carga preferido es text, con alias input, value y s para que formularios, cadenas de consulta y clientes SDK reutilicen el mismo contrato sin renombrar columnas. Mode por defecto es encode y acepta decode de forma explícita; los alias op, direction y action mapean al mismo conmutador en scripts que ya usan esos nombres. El name opcional (alias filename, file) se escribe en la línea =ybegin al codificar y por defecto es data.bin; no debe contener retornos de carro, saltos de línea ni signos igual. El line opcional (alias line_length, linewidth) fija el ancho de envoltura del cuerpo entre treinta y dos y quinientos doce caracteres y por defecto es ciento veintiocho, según la práctica habitual de yEnc. Decode acepta texto enmarcado con =ybegin y =yend o un flujo solo de cuerpo: un escape de igual incompleto al final, un igual seguido de un salto de línea, un desajuste de size respecto al recuento de bytes decodificados o un desajuste de CRC-32 fallan con un mensaje invalid_input claro. Combine la ejecución gratuita en el navegador de esta página con la API de pago cuando necesite el mismo resultado matemático dentro de un pipeline automatizado sin reimplementar usted mismo las tablas yEnc. Las entradas inválidas devuelven invalid_input y no se cobran, lo que mantiene la validación barata mientras las transformaciones correctas siguen un precio fijo por ítem.
Dónde encaja yEnc en Usenet, binarios y fixtures de prueba
Los educadores usan la misma herramienta al enseñar la diferencia entre la opacidad de Base64 y la codificación Usenet de bajo coste de yEnc para payloads mayoritariamente binarios. En esta página el trabajo se ejecuta por completo en su navegador; a través de la API cada consulta correcta cuesta $0.002, la validación fallida no se cobra y no se almacena nada tras la respuesta. Esa división —exploración interactiva gratuita y una API idéntica de pago— coincide con el resto del catálogo KIT de nivel A y le permite pasar de una demo de aula a un pipeline automatizado sin cambiar el resultado codificado.
Casos de integración
Generación de fixtures binarios
Produzca cadenas yEnc enmarcadas y reproducibles para pruebas unitarias, archivos golden y comprobaciones de integración NNTP o de posters.
Validación de parser y CRC
Decodifique payloads sospechosos para sacar a la luz escapes incompletos, desajustes de size y errores CRC-32 sin adivinar.
Preguntas técnicas
¿Qué modos se admiten?
mode=encode (predeterminado) convierte texto plano en yEnc enmarcado con =ybegin y =yend. mode=decode convierte una cadena yEnc (enmarcada o solo cuerpo) de nuevo en texto UTF-8.