Codificador Base32768
Empaquete texto en Base32768, donde cada carácter Unicode lleva quince bits para canales UTF-16: Hello queda en solo tres caracteres, 䩲腻㐿. Al decodificar se comprueban cada símbolo y el relleno, así que una copia dañada falla. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- Hello
- Modo de cálculo
- Encode
- Resultado
- 䩲腻㐿
- Longitud
- 3
- Bytes de entrada
- 5
- Bits por carácter
- 15
Base32768 es una codificación de binario a texto pensada para canales que ya hablan UTF-16: cadenas JavaScript, String de Java, APIs anchas de Windows y muchas bases de datos con NVARCHAR. En lugar de empaquetar cinco o seis bits en un símbolo ASCII como Base32 y Base64, Base32768 elige cada carácter de un repertorio de 32768 puntos de código seguros del Plano Multilingüe Básico y transporta quince bits de carga por carácter. Eso rinde cerca del 93.75 por ciento de eficiencia al almacenar o transmitir el resultado como UTF-16, mucho más denso que Base64 en el mismo cable. Esta capacidad implementa de extremo a extremo el perfil qntm Base32768: el modo encode lee su cadena en claro como bytes UTF-8 y emite un resultado Base32768; el modo decode valida cada símbolo frente al alfabeto primario de quince bits y al secundario de relleno de siete bits, y recupera el texto UTF-8 original.
Cómo Base32768 empaqueta quince bits en caracteres BMP seguros
Base32768 trata la entrada como un flujo continuo de bits de bytes en bruto. Para texto, esta capacidad convierte primero su cadena con UTF-8 para que los caracteres multibyte sigan siendo portátiles entre idiomas y plataformas. Los bits se toman del más significativo al menos.
Cada quince bits acumulados seleccionan un índice en un repertorio primario de 32768 entradas construido con rangos cerrados de puntos de código Unicode asignados, no de control y sin espacio en blanco del Plano Multilingüe Básico. Esos rangos evitan a propósito caracteres que rompen la normalización Unicode, confunden la dirección del texto o parecen formato, de modo que la cadena codificada es segura al pegarse en la mayoría de APIs limpias de Unicode.
Cuando el resto final no es un bloque completo de quince bits, el codificador rellena con unos y termina con un símbolo primario o con un símbolo secundario de relleno de siete bits de un alfabeto aparte de 128 entradas. La decodificación invierte el mapa: cada carácter aporta quince o siete bits, se emiten bytes completos en cuanto se acumulan ocho bits y los bits residuales de relleno deben seguir siendo todos unos.
También se rechaza un carácter secundario de relleno antes de la posición final, porque ese patrón nunca aparece en una codificación válida. Frente a Base64, usted cambia un alfabeto solo ASCII por mucha más densidad bajo UTF-16; frente a Base65536, permanece en el BMP y cada carácter es una sola unidad de código UTF-16.
Dónde aparece Base32768 en el trabajo real
Los sistemas que guardan blobs binarios en columnas de texto UTF-16 suelen necesitar un empaquetado más denso del que Base64 ofrece sin salir del BMP. Los equipos ya estandarizados en la suite qntm de codificaciones densas usan Base32768 cuando el canal es nativo UTF-16 y Base2048 o Base65536 cuando aplican otras restricciones. Los escritorios de soporte pegan cadenas opacas desde tickets y necesitan validación estricta del alfabeto sin aceptar símbolos basura que producirían una carga incorrecta.
Quienes enseñan densidad de codificación bajo distintas formas Unicode quieren una página dedicada a Base32768 en lugar de enterrarla bajo un landing genérico de Base64, porque la intención de búsqueda, las reglas del alfabeto y las cifras de eficiencia difieren. Si necesita Base32 RFC 4648 para secretos TOTP, Base64 seguro para URL o densidad basE91 bajo UTF-8, trátelos como intenciones de búsqueda y landings aparte en lugar de sobrecargar esta página de codificador Base32768.
Qué puede hacer con ella
Tokens opacos densos en UTF-16
Codifique cargas cortas seguras en binario a Base32768 para almacenarlas en columnas NVARCHAR, cadenas JavaScript o el portapapeles cuando la densidad UTF-16 importa más que la seguridad ASCII.
Preguntas frecuentes
¿Qué perfil Base32768 usa esta capacidad?
El perfil qntm Base32768: 32768 puntos de código BMP primarios con quince bits cada uno, más un alfabeto secundario de 128 entradas para el símbolo final de relleno de siete bits cuando hace falta.
¿Puedo codificar y decodificar?
Sí. Fije mode en encode (predeterminado) para convertir texto UTF-8 en claro a Base32768, o mode en decode para recuperar texto desde una cadena Base32768.
¿Por qué Base32768 es más denso que Base64 bajo UTF-16?
Cada carácter Base32768 es una sola unidad de código BMP (16 bits de UTF-16) con quince bits de carga, cerca del 93.75 por ciento de eficiencia. Base64 necesita dos unidades UTF-16 por doce bits de carga ASCII, así que la densidad en cables UTF-16 es mucho menor.
¿Cuánto cuesta?
La herramienta del navegador es gratuita y se ejecuta en local.
¿Por qué Hello se queda en solo tres caracteres?
Porque cada carácter de Base32768 lleva quince bits. Hello ocupa cinco bytes, es decir, cuarenta bits, así que bastan tres caracteres, con la parte sobrante del último completada con bits a uno.
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/base32768 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello"}'const res = await fetch("https://api.kit.forhosting.com/enc/base32768", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/base32768",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/base32768", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/base32768", 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"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base32768",
"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
Símbolos ilegales, caracteres de relleno mal colocados y desajustes de bits de relleno fallan de inmediato con invalid_input para que un pegado corrupto no parezca correcto.
Cómo Base32768 empaqueta quince bits en caracteres BMP seguros
Cualquier carácter fuera de ambos repertorios lanza invalid_input. Toda la ruta es trabajo entero determinista sin red, sin semillas aleatorias y sin reloj de pared, así que entradas idénticas producen siempre el mismo JSON.
Qué envía usted y qué recibe de vuelta
Envíe un campo de cadena obligatorio llamado text y un campo opcional mode con encode o decode. El modo encode trata text como contenido UTF-8 en claro y devuelve una cadena result en los alfabetos Base32768. El modo decode trata text como Base32768, valida cada símbolo y devuelve la cadena UTF-8 recuperada en result. Si omite mode, encode es el valor predeterminado y un solo payload sigue siendo útil. Ambas direcciones repiten mode, el text original, result, un campo length de la cadena de salida principal, bits_per_char en quince, etiquetas de alphabet y plane, y una referencia breve al estándar para que los clientes afirmen el perfil. Encode también informa input_bytes; decode informa output_bytes. Falta de text, objetos que no son cadena, valores de mode no admitidos, cadenas más largas que el máximo documentado, caracteres Base32768 no reconocidos, un carácter secundario de relleno antes del final, desajustes de bits de relleno o bytes decodificados que no son UTF-8 válido fallan con invalid_input y un mensaje claro en inglés. Los fallos de validación no consumen saldo prepago. Comprobaciones clásicas incluyen codificar Hello a un bloque Base32768 corto de tres caracteres, codificar la frase hello world a la cadena de referencia conocida del formato y decodificar esa cadena al payload original de once bytes. El precio de las llamadas API correctas es la base publicada de $0.002 por ítem.
Dónde aparece Base32768 en el trabajo real
Blobs de partidas de juego embebidos en JSON, huellas compactas de configuración movidas por APIs del portapapeles y tokens cortos sin conexión que deben sobrevivir idas y vueltas de cadenas JavaScript se benefician de quince bits por carácter. Como esta capacidad es un motor parse puro, el precio de la API es la base publicada de $0.002 por ítem exitoso y la validación fallida no consume saldo.
Casos de integración
Fixtures golden multi-runtime
Genere vectores de encode y decode que coincidan con la referencia qntm Base32768 para que la CI multilingüe comparta una sola verdad de empaquetado de quince bits.
Validación estricta al pegar
Decodifique cadenas Base32768 pegadas por el usuario con errores invalid_input claros cuando un símbolo queda fuera del alfabeto primario o secundario.
Preguntas técnicas
¿Qué ocurre si la cadena Base32768 tiene un carácter inválido?
La decodificación falla con invalid_input describiendo el símbolo no reconocido o el problema de relleno. Nada se cobra por fallos de validación.