Invertir texto
«Hello, world!» vuelve como «!dlrow ,olleH»: el último carácter pasa a ser el primero, y los emojis, las banderas y las letras con tilde se mantienen enteros en lugar de convertirse en símbolos rotos. Útil para acertijos, clases y comprobaciones rápidas. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- Hello, world!
- Resultado
- !dlrow ,olleH
- Texto
- !dlrow ,olleH
- Texto original
- Hello, world!
- Longitud
- 13
Invertir una cadena parece trivial hasta que aparece Unicode multibyte: un bucle ingenuo sobre índices UTF-16 puede partir emoji, marcas combinantes y pares sustitutos, produciendo una salida corrupta que falla las comprobaciones visuales y las pruebas automatizadas.
Qué significa invertir texto y por qué importa el manejo de Unicode
Invertir texto significa que el último carácter de la entrada se convierte en el primero de la salida, el penúltimo en el segundo, y así sucesivamente hasta que el primer carácter de la entrada termina al final del resultado. Para ASCII simple como Hola la salida es aloH y todos los lenguajes de programación coinciden. El caso difícil es el texto del mundo real: banderas, emoji de familia unidos con uniones de ancho cero, letras acentuadas escritas como base más marca combinante, y símbolos fuera del Plano Multilingüe Básico.
Indexar una cadena de JavaScript por unidad de código o partir con cadena vacía puede cortar un solo emoji en sustitutos huérfanos que se muestran como caracteres de reemplazo. Por ello esta capacidad segmenta primero, luego invierte la lista de segmentos y después une. Cuando el entorno expone Intl.Segmenter con granularidad de grafema, cada carácter percibido por el usuario permanece íntegro durante la inversión.
Cuando Segmenter no está disponible, Array.from recorre puntos de código para que los pares sustitutos sigan invirtiéndose intactos. Prefiera esta calculadora de invertir texto cuando la intención de búsqueda sea invertir una cadena, voltear el orden de caracteres o invertir texto en línea con soporte de emoji. No la use cuando solo necesite invertir el orden de las palabras en una frase manteniendo cada palabra legible de izquierda a derecha: esa es otra promesa de producto.
Qué puede hacer con ella
Puzzles y demostraciones educativas
Docentes y creadores de juegos invierten frases y cadenas seguras con emoji para puzzles de clase, calentamientos CTF y demos interactivas sin corromper caracteres multibyte.
Preguntas frecuentes
¿Cómo invierto texto con esta herramienta?
El campo result de la respuesta es la salida invertida; original repite su entrada para comparar.
¿Invertir texto maneja emoji y Unicode correctamente?
Sí. El motor segmenta clústeres de grafema cuando Intl.Segmenter está disponible; en caso contrario usa puntos de código vía Array.from, de modo que los emoji multibyte no se parten en sustitutos rotos.
¿Es gratuita la herramienta de invertir texto?
La herramienta del navegador se ejecuta gratis en su dispositivo.
¿Esto invierte palabras o caracteres?
Invierte el flujo completo de caracteres (grafemas/puntos de código), no solo el orden de las palabras. Hola mundo se convierte en odnum aloH, no en mundo Hola.
¿Para qué sirve invertir un texto?
Sobre todo para acertijos, juegos y demostraciones en clase, como los retos de descifrado. También es una forma rápida de comprobar que un texto con emojis atraviesa un proceso sin dañarse.
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/str/reverse \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello, world!"}'const res = await fetch("https://api.kit.forhosting.com/str/reverse", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello, world!"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/reverse",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello, world!"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/reverse", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello, world!"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello, world!"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/reverse", 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, world!"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.reverse",
"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 herramienta de invertir texto acepta entrada no vacía, segmenta la cadena en caracteres percibidos por el usuario cuando Intl.Segmenter está disponible (y en puntos de código Unicode en caso contrario), invierte esa secuencia y devuelve un contrato JSON estable con la cadena invertida, el eco del original, la longitud, el recuento de caracteres y las etiquetas de método. Las cadenas vacías o solo de espacios fallan con invalid_input para que las canalizaciones no guarden resultados en blanco por accidente.
Contrato de entrada, rechazo de vacío y lectura de la respuesta
El texto fuente sigue las mismas reglas de retención que otros elementos parse de KIT. Envíe un cuerpo JSON con el campo de cadena obligatorio text fijado a la frase no vacía que desea invertir. Se aceptan los alias input, value, s y content cuando clientes antiguos o generadores de formularios usan esos nombres. Si falta text, si el valor no es una cadena, si la cadena está vacía o solo tiene espacios, se lanza invalid_input con un mensaje que nombra el problema, y esos fallos no se cobran en la API prepago. Use solo result cuando solo necesite la cadena volteada; use original y result juntos cuando una interfaz de demostración deba mostrar el antes y el después; use char_count cuando verifique que los símbolos de varias unidades de código contaron como una unidad. Mantenga las cargas en tamaños de frase y mensaje adecuados para un aislado Worker, no volcados de varios megabytes; este producto es una utilidad de texto, no un procesador masivo de archivos.
Uso de la API, precios, flujos de trabajo y límites prácticos
Llame a la herramienta gratuita en el navegador para invertir texto en puzzles, demostraciones de clase, comprobaciones de copia y experimentos rápidos seguros con emoji sin instalar una utilidad de escritorio ni escribir un one-liner en cada lenguaje. Un flujo típico toma un eslogan o frase semilla, ejecuta este extremo y luego muestra la cadena en espejo para una interfaz divertida o un paso de verificación de que la inversión de ida y vuelta restaura el original. Combine este extremo con herramientas de codificación o hash cuando el siguiente paso sea Base64 o suma de verificación de la forma invertida, pero mantenga invertir en su propia página para no mezclar la intención de búsqueda de invertir texto con la codificación. No espere inversión lingüística del orden de palabras para visualización en lenguaje natural, reordenamiento del algoritmo bidireccional para maquetación RTL completa ni colación según la configuración regional: esos son problemas aparte. Use la API prepago de KIT cuando un backend de juego, una canalización de contenido, un harness de control de calidad o un cliente móvil necesiten la misma transformación bajo saldo a $0.002 por elemento exitoso; los fallos de validación nunca consumen saldo tras el rechazo del motor. Los autores que publican SDK pueden documentar text como único campo obligatorio y mostrar un ejemplo de éxito con varios caracteres más un error de cadena vacía para que los integradores vean ambos lados del contrato.
Casos de integración
Control de calidad y fixtures de regresión Unicode
Los harness de prueba fijan salidas golden invertidas para que las refactorizaciones que partan pares sustitutos o marcas combinantes fallen de inmediato en la integración continua.
Espejo de interfaz y canalizaciones de contenido
Las herramientas de producto generan etiquetas en espejo o variantes semilla a partir del texto del usuario con un contrato prepago estable para servidores y SDK.
Preguntas técnicas
¿Qué ocurre si text está vacío?
Las cadenas vacías y las que solo tienen espacios fallan con invalid_input y no se cobran.