Conversor de puntos de código Unicode
Escriba Hi y obtendrá U+0048 U+0069, un punto de código por carácter, y un emoji queda como un único valor, por ejemplo U+1F600, en lugar de dos mitades rotas. Pegue una lista de códigos U+ para volver al texto. 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
- To codepoints
- Resultado
- U+0048 U+0069
- Puntos de código
- U+0048, U+0069
- Valores
- 72, 105
- Cantidad
- 2
Unicode asigna a cada carácter un valor escalar único escrito en la conocida notación U más hexadecimal, desde las letras latinas básicas como U+0041 para la A mayúscula hasta los emoji y las escrituras históricas que necesitan cinco o seis dígitos hexadecimales. Los desarrolladores, los ingenieros de fuentes, los equipos de localización y los servicios de soporte necesitan constantemente expandir una cadena corta en esos puntos de código para depuración, documentación o formatos de transmisión, y con la misma frecuencia necesitan recomponer una lista de tokens U+ en los glifos originales.
Cómo se corresponden los escalares Unicode con los tokens U+XXXX
Unicode define un espacio de valores escalares de cero a U+10FFFF. No todo entero de ese rango es un carácter que la gente escriba a diario, pero cada carácter abstracto que se almacena en texto moderno está identificado por uno de esos escalares. Las cadenas de JavaScript son secuencias de unidades de código UTF-16, de modo que un solo emoji o un ideograma CJK poco frecuente puede ocupar dos unidades llamadas par sustituto.
Por tanto, un conversor correcto debe usar iteración por puntos de código en lugar de indexar una unidad cada vez; de lo contrario, una cara sonriente se informaría erróneamente como dos sustitutos alto y bajo separados en lugar de un único escalar como U+1F600. Esta capacidad recorre la cadena con codePointAt, avanza una o dos unidades según corresponda y formatea cada escalar como U+ seguido de al menos cuatro dígitos hexadecimales en mayúsculas, ampliando a cinco o seis dígitos cuando el valor lo requiere.
La ruta inversa acepta varias grafías comunes para que las fuentes de pegado sigan siendo flexibles: U+0048, u+48, 0x48, hexadecimal suelto como 0048 y formas HTML como H o el decimal H. Cada token se analiza a un entero y luego se valida: se rechazan los valores por encima de U+10FFFF y se rechaza el rango de sustitutos UTF-16 de U+D800 a U+DFFF, porque esas unidades de código no son valores escalares de Unicode y nunca deben aparecer como caracteres independientes en una cadena Unicode bien formada.
Los escalares válidos se ensamblan con fromCodePoint en una cadena JavaScript normal.
Dónde aparece la conversión de puntos de código Unicode en el trabajo real
Los pipelines de fuentes y glifos documentan qué escalares cubre una familia y necesitan listas U+ estables en las hojas de muestra y en los diffs de las pull requests. Los ingenieros de internacionalización comparan formas normalizadas, buscan parecidos confusos y verifican que el nombre de un producto no esconde un homóglifo expandiendo cada carácter a su punto de código.
Los equipos de accesibilidad y contenido pegan cadenas cortas desde herramientas de diseño y necesitan una expansión fiable cuando un glifo se muestra como un cuadro o como un emoji inesperado. Los revisores de seguridad inspeccionan nombres de usuario, URL y líneas de registro en busca de caracteres de control no ASCII o escalares de uso privado que se cuelan por filtros ingenuos.
Los cursos de programación enseñan codificación mostrando que un único carácter visible puede corresponder a un escalar mientras UTF-8 puede usar varios bytes; una página dedicada al conversor atiende esa intención de búsqueda mejor que enterrarla bajo herramientas de Base64 o de reparación de UTF-8. Los servicios de soporte reciben capturas de símbolos extraños y reconstruyen los puntos de código exactos a partir de una muestra tecleada o copiada para que ingeniería pueda reproducir el fallo.
Si necesita secretos Base32, codificación de porcentaje para URL, volcados de bytes en octal o reparación de mojibake a UTF-8, trátelos como intenciones de búsqueda y páginas separadas en lugar de sobrecargar esta página del conversor de puntos de código Unicode.
Qué puede hacer con ella
Depuración de emoji y caracteres multibyte
Expanda una cadena corta en tokens U+XXXX para que los pares sustitutos afloren como un solo escalar, y luego reconstruya el texto original tras editar la lista.
Listas de localización y cobertura de fuentes
Produzca inventarios estables de puntos de código para nombres de producto, cadenas de muestra y tablas de cobertura de glifos compartidas entre diseño e ingeniería.
Clasificación de seguridad y soporte
Revele caracteres ocultos o confusos en nombres de usuario y tickets listando los escalares Unicode exactos, sin conjeturas a partir de una simple captura de pantalla.
Preguntas frecuentes
¿Qué notación usa este conversor?
La notación estándar Unicode U+XXXX con al menos cuatro dígitos hexadecimales en mayúsculas (más cuando hace falta). La entrada también acepta las formas 0xHH, hexadecimal suelto y HTML &#x…; / &#…; al convertir de vuelta a caracteres.
¿Qué ocurre con un punto de código no válido?
Los sustitutos (U+D800–U+DFFF), los valores por encima de U+10FFFF y los tokens mal formados se rechazan con un mensaje claro. Los fallos de validación no se cobran.
¿Gestiona bien los emoji y los pares sustitutos?
Sí. La iteración usa puntos de código Unicode completos, de modo que un solo emoji es un escalar (por ejemplo U+1F600), no dos unidades UTF-16.
¿Cuánto cuesta?
La herramienta del navegador es gratuita y se ejecuta localmente.
¿Qué formatos puedo pegar para recuperar los caracteres?
Sirven U+0048, u+48, 0x48, el hexadecimal suelto como 0048 y las referencias HTML H o H. Los valores por encima de U+10FFFF y la franja de sustitutos se rechazan para no inventar un carácter equivocado.
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-codepoint \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hi"}'const res = await fetch("https://api.kit.forhosting.com/enc/unicode-codepoint", {
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/unicode-codepoint",
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/unicode-codepoint", 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/unicode-codepoint", 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.unicode_codepoint",
"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
Esta capacidad hace ambas direcciones con una única función pura: to_codepoints recorre la entrada con plena conciencia de puntos de código, de modo que los pares sustitutos se convierten en un solo escalar, y to_chars analiza las formas U+, 0x, hexadecimal suelto y las referencias numéricas HTML, rechazando los sustitutos y los valores por encima de U+10FFFF. Los tokens no válidos fallan de inmediato con invalid_input, de modo que un pegado defectuoso nunca inventa un carácter equivocado.
Cómo se corresponden los escalares Unicode con los tokens U+XXXX
Toda la ruta es trabajo determinista de enteros y cadenas, sin llamadas de red, sin semillas aleatorias y sin marcas de reloj, de modo que entradas idénticas producen siempre un JSON idéntico.
Qué se envía y qué se recibe de vuelta
El campo opcional separator controla cómo se unen los tokens a la salida y cómo se dividen a la entrada: el espacio es el valor predeterminado, con comma, newline y none disponibles para listas más densas u orientadas a líneas. En el modo none cada token debe llevar un prefijo explícito U+, 0x o HTML para que los límites no resulten ambiguos. Envíe un campo de cadena obligatorio llamado text y un campo opcional mode con valor to_codepoints o to_chars. Cuando se omite mode, el valor predeterminado es to_codepoints, de modo que una sola carga sigue haciendo trabajo útil. Las respuestas correctas reproducen mode, el text original, una cadena result, un array codepoints de tokens U+ normalizados, un array numérico values de enteros, un count de escalares, el separator utilizado, una etiqueta format y una breve referencia standard. to_codepoints convierte Hi en U+0048 U+0069 con los arrays correspondientes; to_chars invierte esa lista de vuelta a Hi. Un text ausente, valores de mode no admitidos, cadenas más largas que el máximo documentado, tokens ilegales vacíos, basura no hexadecimal, puntos de código sustitutos y escalares por encima de U+10FFFF fallan con invalid_input y un mensaje claro en inglés que nombra el problema. 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 puntos de código Unicode en el trabajo real
Como esta capacidad es un motor de parse puro, el precio de la API es la base publicada de $0.002 por elemento correcto y la validación fallida no consume saldo.
Preguntas técnicas
¿Puedo convertir en ambas direcciones?
Sí. Ajuste mode a to_codepoints (valor predeterminado) para convertir caracteres en tokens U+, o mode a to_chars para analizar tokens de puntos de código de vuelta a una cadena.