Codificador de bytes UTF-8
Vea los bytes UTF-8 exactos de cualquier texto: «Hi» se convierte en los pares hex 48 69, un par por byte, y el hex pegado vuelve a los caracteres originales. Las secuencias que no son UTF-8 válido se rechazan, nunca se maquillan. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- Hi
- Modo de cálculo
- Encode
- Resultado
- 48 69
- Entrada
- Hi
- Hexadecimal
- 48 69
- Hex compacto
- 4869
Un codificador de bytes UTF-8 convierte caracteres legibles en la secuencia exacta de bytes que Unicode asigna bajo UTF-8, mostrados como pares hexadecimales de dos dígitos, y un decodificador correspondiente reconstruye la cadena original a partir de esos bytes. Escriba texto plano y elija codificar para recibir pares hex separados por espacios —un par por octeto— o pegue hex y elija decodificar para recuperar el texto.
Cómo el texto se convierte en bytes hex UTF-8 y por qué importa la validez
Los ordenadores almacenan el texto como secuencias de bytes. UTF-8 codifica cada punto de código Unicode como uno a cuatro bytes: las letras latinas básicas suelen necesitar un solo byte que coincide con el ASCII clásico, mientras que el latín acentuado, muchos alfabetos no latinos y los emoji necesitan dos, tres o cuatro bytes.
Al codificar, se recorre la cadena con un codificador UTF-8 estándar y luego se escribe cada byte como dos dígitos hexadecimales en minúscula de cero a doscientos cincuenta y cinco, uniendo los pares con un solo espacio para que las personas puedan contar octetos de un vistazo. Decodificar hace lo contrario: divide la entrada en pares candidatos, exige que cada par tenga exactamente dos dígitos hex, convierte cada par en un byte y luego interpreta el array de bytes como UTF-8 con validación estricta.
Si un par tiene un dígito, tres dígitos o un carácter no hexadecimal, o si la cadena hex continua tiene longitud impar, el conversor debe fallar. Un relleno silencioso cambiaría el contenido y ocultaría errores en los ejercicios. Más importante aún, incluso un hex bien formado puede describir bytes que no son UTF-8 válido —por ejemplo un byte de continuación suelto o un byte inicial multibyte truncado—.
Esta página está dirigida a quienes buscan un codificador de bytes UTF-8, una herramienta de texto a bytes hex o un decodificador hex UTF-8 en línea; no es un conversor de grupos de bits binarios ni un detector general de codificaciones para páginas de códigos heredadas.
Consejos prácticos, límites y herramientas relacionadas
Prefiera decode cuando ya dispone del hex de una captura de paquetes, una línea de registro o un libro de texto y quiere recuperar los caracteres. Las comprobaciones de ida y vuelta son la prueba de humo más rápida: codifique una palabra corta como Hi, confirme que los dos pares coinciden con los bytes ASCII conocidos cuarenta y ocho y sesenta y nueve en hex, luego decodifique esos pares y confirme que recupera la cadena original.
Mantenga los contenidos por debajo del límite de caracteres publicado; los volcados de varios megabytes pertenecen al trabajo sin conexión. Esta herramienta no es un conversor de bits binarios —los grupos binarios son base dos, no base dieciséis— ni una herramienta de reparación de mojibake que adivina Latin-1 o Windows-1252.
Prefiera esta capacidad cuando la intención de búsqueda es texto frente a octetos hex UTF-8; use el conversor de texto a binario cuando necesite grupos de ocho bits de ceros y unos, y use una herramienta de reparación de conversión a UTF-8 cuando el problema sea la codificación de origen incorrecta y no la presentación hex.
Al enseñar, muestre el mismo emoji o letra acentuada junto a una letra ASCII simple para que los estudiantes vean que los octetos UTF-8 multibyte aparecen como pares hex adicionales y no como un único código misterioso.
Qué puede hacer con ella
Comprobación de tareas sobre codificaciones multibyte UTF-8
Los estudiantes codifican frases cortas con acentos o emoji, comparan los pares hex escritos a mano con el resultado determinista y decodifican el hex proporcionado por el profesor sin una hoja de cálculo.
Demostraciones didácticas de protocolos y redes
Los talleres muestran cómo las etiquetas imprimibles se convierten en octetos en la red y luego fuerzan hex UTF-8 no válido para ilustrar el encuadre estricto y las reglas del decodificador.
Preguntas frecuentes
¿Qué devuelve el codificador de bytes UTF-8?
En modo encode devuelve pares hex de dos dígitos separados por espacios (uno por byte UTF-8), una cadena hex compacta y arrays de pares y valores enteros de bytes. En modo decode devuelve el texto UTF-8 recuperado.
¿Admite emoji y alfabetos no latinos?
Sí. La codificación usa UTF-8, así que los caracteres multibyte se convierten en varios pares hex. La decodificación rechaza las secuencias de bytes que no son UTF-8 válido.
¿Puedo pegar hex sin espacios?
Sí, si la cadena continua contiene solo dígitos hexadecimales y su longitud es múltiplo de dos.
¿Es gratuito el codificador de bytes UTF-8?
La herramienta del navegador es gratuita y se ejecuta localmente.
¿Qué pasa si el hex no es UTF-8 válido?
La herramienta lo rechaza en lugar de inventar caracteres de reemplazo. Un byte de continuación suelto, un carácter multibyte cortado, un número impar de dígitos o un carácter que no es hex detienen la conversión, y el error queda a la vista.
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/utf8-bytes \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hi"}'const res = await fetch("https://api.kit.forhosting.com/enc/utf8-bytes", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hi"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/utf8-bytes",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hi"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/utf8-bytes", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hi"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hi"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/utf8-bytes", 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": "Hi"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.utf8_bytes",
"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
Hex no válido, un número impar de dígitos o una secuencia de bytes que no sea UTF-8 legal devuelve un error invalid_input claro en lugar de inventar caracteres de reemplazo. El proceso es aritmética determinista pura sobre bytes UTF-8 —sin red, sin semillas aleatorias, sin dependencia del reloj— de modo que el ejecutor gratuito del navegador y la API prepagada devuelven el mismo JSON en cada llamada.
Cómo el texto se convierte en bytes hex UTF-8 y por qué importa la validez
Emitir el carácter de reemplazo de Unicode ocultaría ese defecto; esta herramienta rechaza con invalid_input para que quien la llama vea el mismo error duro que lanzaría un parser estricto.
Cómo llamar a la API y qué contiene la respuesta
El modo por defecto es encode: los bytes UTF-8 de text se convierten en pares hex de dos dígitos separados por espacios. El modo decode trata text como pares hex —octetos separados por espacios en blanco, prefijos 0x opcionales o una cadena hex continua cuya longitud sea múltiplo de dos— y devuelve la cadena UTF-8 recuperada. Envíe un cuerpo JSON con un campo de cadena obligatorio text (alias input, value y data) y un mode opcional que es encode o decode. La longitud de la entrada está limitada a cien mil caracteres para que una sola solicitud no agote la memoria del Worker con cadenas enormes. En caso de éxito con encode, la respuesta incluye mode, input, result y hex con la misma cadena hex separada por espacios, hex_compact sin espacios, pairs como array de cadenas de dos caracteres, bytes como los valores enteros de los bytes, byte_count y un mensaje breve en inglés. En caso de éxito con decode, la respuesta incluye mode, input, result y text con la cadena UTF-8 decodificada, hex normalizado a pares separados por espacios, hex_compact, los mismos arrays pairs y bytes, byte_count y un mensaje correspondiente. Una validación fallida —falta text, text que no es cadena, entrada demasiado grande, un mode desconocido, un par hex no válido, longitud impar del hex continuo o bytes decodificados que no son UTF-8 válido— devuelve invalid_input y nunca se cobra. El precio es una tarifa plana de $0.002 por solicitud exitosa con unidad item y precio marginal por unidad cero.
Consejos prácticos, límites y herramientas relacionadas
Envíe deliberadamente una secuencia multibyte incompleta, como un solo byte inicial sin su continuación, o una cadena hex continua de longitud impar, para comprobar que su cliente gestiona invalid_input y el mensaje de error que menciona UTF-8 o hex no válidos. Las tareas fallidas que devuelven invalid_input no consumen saldo prepagado, lo que mantiene baratos los scripts exploratorios cuando los estudiantes pegan hex incompleto.
Casos de integración
Fixtures de pruebas unitarias para códecs y parsers
Genere cadenas de bytes hex conocidas a partir del texto del fixture y verifique que la decodificación recupera los mismos bytes UTF-8 en CI sin ayudas improvisadas de TextEncoder.
Preguntas técnicas
¿Qué ocurre con una secuencia UTF-8 no válida?
El modo decode usa validación UTF-8 estricta. El hex que forma secuencias multibyte incompletas o bytes ilegales devuelve invalid_input en lugar de caracteres de reemplazo.