Convertidor Unicode RTF
café se convierte en caf\u233?: el ASCII simple queda legible, cada carácter restante pasa a una palabra de control RTF con un decimal con signo y una marca de reserva, y los escapes pegados vuelven a ser texto, emojis incluidos. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- café
- Modo de cálculo
- Encode
- Resultado
- caf\u233?
- Longitud
- 9
- Unidades de código
- 4
- Cantidad de escapes
- 1
Los archivos Rich Text Format y los fragmentos del portapapeles suelen ocultar caracteres no ASCII tras una palabra de control muy concreta: una barra invertida, la letra u, un entero decimal con signo y, casi siempre, un carácter ANSI de reserva como el signo de interrogación. Ingenieros de soporte, especialistas en localización y desarrolladores que pegan trozos RTF en tickets necesitan un conversor que transforme texto legible en esas palabras de control y devuelva caracteres legibles sin adivinar valores truncados o fuera de rango.
Cómo las palabras de control RTF \uN representan Unicode
La especificación RTF define un destino Unicode que inserta una unidad de código UTF-16 por cada palabra de control barra-u. El número tras la u es un entero de dieciséis bits con signo en decimal: de 0 a 32767 nombra directamente las unidades del BMP; de −32768 a −1 nombra la mitad superior del BMP en complemento a dos, de modo que la unidad 65533 aparece como −3.
Justo después de los dígitos, los lectores RTF omiten un número fijo de caracteres de destino ANSI controlado por barra-uc; el valor por defecto 1 significa que se consume y descarta un único carácter de reserva (por ejemplo un signo de interrogación) si el lector entiende Unicode. Por eso los escritores emiten patrones como caf más barra-u-233 y signo de interrogación para café, dejando las letras ASCII literales para que el archivo siga siendo parcialmente legible.
Los caracteres fuera del Plano Multilingüe Básico se convierten en un sustituto alto y uno bajo como dos palabras de control consecutivas, a menudo con decimales negativos en ambas mitades. Esta capacidad recorre el texto por unidad UTF-16 al codificar, deja intacto el ASCII por debajo de 128 y formatea cada unidad no ASCII como barra-u, el decimal con signo y el carácter de reserva elegido.
Al decodificar busca barra-u, signo opcional y de uno a cinco dígitos, valida el rango de dieciséis bits con signo, consume un carácter de destino si está presente y recombina pares sustitutos válidos en un solo escalar para que los emoji hagan el viaje de ida y vuelta correctamente. Escapes truncados, dígitos ausentes y decimales fuera de rango fallan con un índice claro en lugar de inventar un carácter.
Qué puede hacer con ella
Crear goldens de CI para escritores RTF
Codifique nombres de producto y títulos acentuados en formas estables \uN? que los serializadores RTF y las pruebas de fusión de correo deben coincidir tras actualizar bibliotecas.
Enseñar Unicode RTF de 16 bits con signo
Muestre a los alumnos que las unidades altas del BMP y los sustitutos de emoji usan decimales negativos en RTF, a diferencia del hex \uXXXX de JavaScript, y luego decodifique el par a un solo carácter.
Preguntas frecuentes
¿En qué se diferencian los escapes Unicode RTF de \uXXXX en JavaScript?
RTF usa un decimal con signo tras \u (por ejemplo \u233? para é) y un carácter ANSI de reserva de un solo carácter.
¿Cómo codifico texto a la forma RTF \uN?
Envíe text con mode encode (el valor por defecto). El ASCII permanece literal; cada unidad UTF-16 no ASCII se convierte en \u más un decimal con signo más el carácter de reserva (por defecto ?).
¿Cómo decodifico palabras de control Unicode RTF?
Envíe la cadena escapada con mode decode. Las secuencias \uN bien formadas se convierten en caracteres; se consume un carácter de destino tras cada número si está presente; los pares sustitutos se recombinan en emoji y otros escalares fuera del BMP.
¿Por qué algunos códigos Unicode de RTF son negativos?
RTF escribe cada código como un número de 16 bits con signo. Los valores hasta 32767 aparecen tal cual y los superiores pasan a negativos, así que el carácter 65533 se escribe -3. El conversor aplica y deshace esa regla por usted.
¿Qué es el signo de interrogación tras cada código \uN?
Es un carácter de reserva para programas que no muestran Unicode: un lector moderno lo salta y uno antiguo lo imprime en su lugar. Por defecto es el signo de interrogación, pero puede elegir otro carácter o no poner ninguno.
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/rtf-unicode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"café"}'const res = await fetch("https://api.kit.forhosting.com/enc/rtf-unicode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "café"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/rtf-unicode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "café"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/rtf-unicode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"café"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"café"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/rtf-unicode", 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": "café"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.rtf_unicode",
"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
A diferencia de los escapes hexadecimales de JavaScript o JSON (barra-u y cuatro dígitos hex), RTF guarda la unidad de código UTF-16 como número decimal que puede ser negativo cuando la unidad supera 32767: así, é se escribe como barra-u-233 y signo de interrogación, y los sustitutos altos de los emoji forman pares negativos. La herramienta gratuita del navegador y la API de pago comparten un núcleo determinista, de modo que demos, comprobaciones de CI y webhooks en vivo coinciden al precio publicado de $0.002 por elemento correcto.
Cómo las palabras de control RTF \uN representan Unicode
Ese diseño es totalmente distinto de los escapes de cuatro dígitos hex de Java o JSON aunque ambos empiecen por barra-u; por eso quien busca conversión Unicode RTF necesita una página dedicada y no solo una herramienta hex.
Qué envía usted y qué recibe a cambio
Envíe un campo de cadena obligatorio llamado text y un campo opcional mode con valor encode o decode. Encode convierte las unidades no ASCII en escapes RTF contiguos y mantiene el ASCII legible: café pasa a caf más barra-u-233 y signo de interrogación, y una cadena con emoji produce dos palabras de control con signo para el par sustituto. Decode invierte el proceso: sustituye cada barra-u decimal bien formado por la unidad de código correspondiente, elimina el carácter de destino de un carácter cuando está presente, conserva los literales que nunca se escaparon y recombina pares alto-bajo en un solo carácter. Si omite mode, encode es el valor por defecto y un solo payload ya resulta útil. Las respuestas correctas devuelven mode, text y fallback, entregan result como cadena principal de salida e incluyen length, code_units de las unidades UTF-16 procesadas, escape_count de cuántas palabras de control se produjeron o consumieron, una etiqueta de formato al estilo barra-u-N-signo-de-interrogación y una nota breve que nombra las palabras de control Unicode RTF. Falta de text, valores de mode no admitidos, cadenas más largas que el máximo documentado, un fallback de más de un carácter, números truncados tras barra-u, cuerpos no numéricos y valores con signo fuera de rango fallan con invalid_input y un mensaje en inglés que indica el campo o el índice. Los fallos de validación no consumen saldo prepago. El precio de las llamadas API correctas es la base publicada de $0.002 por elemento.
Dónde aparece la conversión Unicode RTF en el trabajo real
Los equipos de migración de documentos extraen fusiones de correo .rtf heredadas y temas de sistemas de ayuda que aún llevan nombres de producto con acentos codificados como palabras de control decimales; decodificar esos trozos a Unicode plano acelera la revisión sin abrir un procesador de textos completo. El control de calidad de localización compara una cadena RTF exportada con una entrada de memoria de traducción codificando la frase esperada y comprobando palabras de control estables tras actualizar una biblioteca. Si necesita escapes de cuatro dígitos hex al estilo JavaScript, listas de puntos de código U-plus en bruto, codificación porcentual de URL o entidades con nombre HTML, trátelos como intenciones de búsqueda y páginas distintas: esas herramientas responden a consultas diferentes aunque el recorrido de cadenas subyacente sea breve. Los puentes de portapapeles entre controles rich-edit antiguos de Windows y aplicaciones web modernas suelen dejar secuencias barra-u en registros JSON intermedios; el personal de soporte pega el fragmento en un escapador Unicode RTF dedicado en lugar de calcular a mano el complemento a dos de cada unidad por encima de 32767. Como esta capacidad es un motor de análisis puro, el precio de la API se mantiene en la base publicada de $0.002 por elemento correcto y la validación fallida no consume saldo.
Casos de integración
Decodificar portapapeles RTF y fragmentos .rtf
Pegue un trozo de texto enriquecido lleno de palabras de control decimales barra-u, decodifíquelo a Unicode legible y vuelva a codificar un fixture corregido para la siguiente exportación.
Preguntas técnicas
¿Qué ocurre con un escape RTF mal formado?
La tarea falla con invalid_input y un mensaje que indica el índice o el problema (dígitos ausentes, valor con signo fuera de rango, cuerpo truncado). Los fallos de validación no se facturan.
¿Cuánto cuesta el conversor Unicode RTF?
La herramienta del navegador es gratuita. Las solicitudes API usan saldo prepago de KIT a $0.002 por llamada correcta; la entrada no válida no se factura.