Conversor de escape Unicode
Escriba Hi y obtendrá \u0048\u0069; una é acentuada pasa a \u00e9 y el emoji U+1F600 se convierte en el par \ud83d\ude00. Al decodificar, esas secuencias vuelven a ser texto legible y los escapes rotos se rechazan en vez de adivinarse. 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
- \u0048\u0069
- Longitud
- 12
- Unidades de código
- 2
- Cantidad de escapes
- 2
Una letra sencilla se convierte en \u0041, un carácter acentuado en \u00e9, y los caracteres fuera del Plano Multilingüe Básico —emoji, escrituras históricas y muchos símbolos modernos— aparecen como un par sustituto alto y bajo, por ejemplo \ud83d\ude00. Pegar esas secuencias a mano es lento y propenso a errores; decodificar un escape truncado o no hexadecimal puede inventar en silencio el carácter equivocado si la herramienta es demasiado permisiva. Esta capacidad codifica texto plano en secuencias contiguas \uXXXX y decodifica cadenas densas de escapes de vuelta a caracteres legibles con plena conciencia de pares sustitutos.
Cómo los escapes \uXXXX representan unidades UTF-16
Esa forma no nombra por sí sola un escalar Unicode completo cuando el carácter está por encima de U+FFFF; en su lugar nombra una unidad de código UTF-16. Los valores de U+0000 a U+FFFF (salvo casos límite de sustitutos no emparejados que aún puede emitir como unidades) se convierten en un solo escape, por ejemplo \u0048 para la H mayúscula o \u00e9 para la e aguda.
Los escalares de U+10000 a U+10FFFF se codifican como un par sustituto: primero un sustituto alto en el rango U+D800–U+DBFF y después un sustituto bajo en U+DC00–U+DFFF. La cara sonriente U+1F600 se convierte por tanto en \ud83d\ude00, no en un escape de seis dígitos. Esta capacidad recorre la entrada con conciencia de puntos de código al codificar, emite hexadecimal de cuatro dígitos en minúsculas por cada unidad y, al decodificar, busca \u o \U seguidos de cuatro dígitos hexadecimales.
Colas incompletas como \u12, cuerpos no hexadecimales como \uGGGG y escapes de barra desconocidos se rechazan en lugar de adivinarse. Los pares alto-bajo válidos se recombinan en un solo escalar mediante fromCodePoint, de modo que el viaje de ida y vuelta conserva emoji y texto del plano suplementario.
Qué puede hacer con ella
Enseñar UTF-16 y pares sustitutos
Muestre a los alumnos que un emoji se convierte en dos unidades \uXXXX y luego decodifique el par de vuelta para que se fijen los conceptos de longitud y punto de código.
Preguntas frecuentes
¿Qué formato de escape usa esta herramienta?
Los caracteres fuera del BMP se codifican como un par sustituto alto y bajo (por ejemplo \ud83d\ude00).
¿Se puede convertir en ambas direcciones?
Sí. Establezca mode en encode (predeterminado) para pasar de texto plano a secuencias contiguas \uXXXX, o mode en decode para expandir escapes —incluidos los pares sustitutos— de vuelta a caracteres.
¿Qué ocurre con un escape mal formado?
Se rechazan formas truncadas como \u12, cuerpos no hexadecimales y escapes de barra desconocidos, con un mensaje que señala el problema. Los fallos de validación no se cobran.
¿Maneja emoji y otros caracteres fuera del BMP?
Sí. Encode emite un par sustituto de dos unidades \uXXXX; decode recombina un par alto+bajo válido en un solo escalar, de modo que el viaje de ida y vuelta conserva el emoji original.
¿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/enc/unicode-escape \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hi café"}'const res = await fetch("https://api.kit.forhosting.com/enc/unicode-escape", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hi café"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/unicode-escape",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hi café"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/unicode-escape", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hi café"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hi café"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/unicode-escape", 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 café"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.unicode_escape",
"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
Quienes depuran cargas JSON, paquetes de recursos Java o literales de cadena en JavaScript se encuentran a cada paso con la forma barra-u: cuatro dígitos hexadecimales tras \u que representan una unidad de código UTF-16. La herramienta gratuita del navegador y la API de pago comparten un único núcleo determinista, de modo que las demostraciones en el aula, las comprobaciones de CI y los webhooks en vivo coinciden siempre en la misma correspondencia al precio publicado de $0.002 por elemento correcto.
Cómo los escapes \uXXXX representan unidades UTF-16
Java, JavaScript y la gramática de cadenas JSON describen el texto Unicode con el mismo escape clásico: una barra invertida, la letra u y exactamente cuatro dígitos hexadecimales. Ese diseño coincide con lo que se ve en la salida de JSON.stringify, en muchos archivos Properties de Java y en el JavaScript antiguo anterior al escape de punto de código \u{…}.
Qué se envía y qué se recibe de vuelta
Envíe un campo de cadena obligatorio llamado text y un campo opcional mode con valor encode o decode. Cuando se omite mode, encode es el valor predeterminado, de modo que una sola carga sigue haciendo trabajo útil. Encode convierte cada carácter en unidades contiguas \uXXXX: Hi se convierte en \u0048\u0069, y una cadena que mezcla ASCII con café y un emoji produce un resultado más largo pero totalmente escapado. Decode invierte el proceso: sustituye cada \uXXXX bien formado por la unidad de código correspondiente, recombina los pares sustitutos en un solo carácter cuando están ambas mitades y conserva los caracteres literales que nunca se escaparon, de modo que los pegados mixtos siguen funcionando. En decode se aceptan compañeros habituales de JSON como \n, \t, \r, \\ y \", de modo que un fragmento copiado de un literal de cadena no falle en el primer escape de salto de línea. Las respuestas correctas reproducen mode y el text original, devuelven result como cadena principal de salida e incluyen length, code_units (unidades UTF-16 procesadas), escape_count (cuántas formas \uXXXX se produjeron o consumieron), una etiqueta format de \uXXXX y una breve nota standard que nombra Java, JavaScript y JSON. Un text ausente, valores de mode no admitidos, cadenas más largas que el máximo documentado, hexadecimal truncado tras \u, dígitos no hexadecimales dentro de un escape y secuencias de barra desconocidas fallan con invalid_input y un mensaje en inglés que nombra el índice o el campo. Los fallos de validación no consumen saldo prepagado. El precio de las llamadas correctas a la API es la base publicada de $0.002 por elemento.
Dónde aparece la conversión de escapes Unicode en el trabajo real
Los clientes móviles y de escritorio que hablan con backends Java a veces registran paquetes al estilo Properties llenos de secuencias \u en cada etiqueta acentuada; los equipos de soporte pegan esas líneas en una página dedicada al conversor en lugar de buscar ajustes del IDE. Los cursos de programación enseñan que la longitud de una cadena JavaScript cuenta unidades UTF-16, no caracteres percibidos por el usuario, y un codificador en vivo que muestra dos escapes por un emoji hace concreta esa lección. Si necesita listas de escalares U+ sin barras, volcados hexadecimales crudos de UTF-16, codificación de porcentaje para URL o entidades HTML con nombre, trátelos como intenciones de búsqueda y páginas separadas en lugar de sobrecargar esta página de secuencias de escape Unicode: esas herramientas responden a consultas distintas aunque el código subyacente sea corto. Los autores de API y webhooks suelen recibir JSON en el que nombres de producto no ASCII o leyendas generadas por usuarios aparecen totalmente escapados; decodificarlos a texto legible agiliza el triaje sin levantar un runtime de aplicación completo. Como esta capacidad es un motor de parse puro, el precio de la API permanece en la base publicada de $0.002 por elemento correcto y la validación fallida no consume saldo.
Casos de integración
Decodificar JSON y registros Java escapados
Pegue una línea de registro llena de \u00e9 y pares sustitutos, decodifíquela a texto legible y vuelva a codificar un fixture corregido para el siguiente despliegue.
Crear cadenas golden de CI para serializadores
Codifique nombres de producto y leyendas con emoji en formas estables \uXXXX que los volcados de cadena JSON y Java deben coincidir tras actualizar bibliotecas.