¿Qué es 48 65 6C 6C 6F en texto?
Hello En ASCII y UTF-8, 48 es H, 65 es e, 6C es l y 6F es o.
Convierte hexadecimal a texto y texto a hex. Pega el hex en cualquier forma — con espacios, 0x, \x, salida de xxd o hexdump, arrays de bytes de Java o C — y se detecta ASCII, UTF-8, GBK o UTF-16. En tu navegador.
Leído como hex sin formato · 13 bytes
Hello, 世界
UTF-8 detectado automáticamente: todas las secuencias multibyte están bien formadas.
El resultado es a su vez hex — probablemente se convirtió dos veces. Una ronda más da:
| Codificación | Se lee como |
|---|---|
| UTF-8 Se decodifica sin errores | Hello, 世界 |
| GBK / GB18030 Se decodifica sin errores | Hello, 涓栫晫 |
| UTF-16LE Tiene bytes no decodificables | 效汬Ɐ隸闧� |
| UTF-16BE Tiene bytes no decodificables | 䡥汬漬⃤뢖� |
| ISO-8859-1 Se decodifica sin errores | Hello, ä¸<96>ç<95><8C> |
48 65 6C 6C 6F 2C 20 E4 B8 96 E7 95 8C
Escrito y revisado por los desarrolladores que crean las utilidades de codificación de Go Tools. Cada valor hex y cada salida que se citan en esta página los genera el propio motor de la página y los verifican pruebas automatizadas.
Hello En ASCII y UTF-8, 48 es H, 65 es e, 6C es l y 6F es o.
Normalmente 3 bytes en UTF-8, 2 en GBK 你 es E4 BD A0 en UTF-8 y C4 E3 en GBK.
CR LF (\r\n) Retorno de carro seguido de salto de línea: el final de línea que usan Windows, HTTP y la mayoría de los juegos de comandos serie.
41 La a minúscula es 61; las dos siempre se diferencian en 20.
El hexadecimal es una forma de escribir bytes: cada byte, de 0 a 255, se escribe con dos dígitos, de 00 a FF. Convertir hex a texto consiste en volver a transformar esos bytes en texto legible, y siempre implica elegir una codificación de caracteres: la tabla que dice qué byte, o qué secuencia de bytes, representa cada carácter.
Con texto en inglés la elección rara vez se nota, porque ASCII, UTF-8, GBK y la mayoría de las demás codificaciones coinciden en los bytes 00 a 7F. Con cualquier otra cosa se nota enseguida. Los bytes C4 E3 BA C3 son 你好 en GBK y no son válidos en UTF-8, mientras que 你好 en UTF-8 es E4 BD A0 E5 A5 BD. El hex es solo la mitad de la información; la codificación es la otra mitad.
Convertir texto a hex es lo contrario: codificar el texto en bytes y escribir cada byte como dos dígitos hex. Los desarrolladores lo usan para ver exactamente qué pasa por una línea serie o qué entra en una columna de base de datos, para meter datos binarios en el código fuente y para comparar lo que dos sistemas enviaron realmente.
$ echo 48656c6c6f | xxd -r -p
Hello
>>> bytes.fromhex('c4e3bac3').decode('gbk')
'你好'
>>> bytes.fromhex('c4e3bac3').decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc4 in position 0: invalid continuation byte Con espacios, compacto, separado por dos puntos o guiones, valores 0x, escapes \x, codificación %, arrays de C, Go y Java, la salida con signo de Arrays.toString de Java, literales bytes de Python, Buffers de Node.js y pantallas completas de xxd, hexdump -C y od. La página te dice qué reconoció y qué eliminó.
La detección automática busca una marca de orden de bytes, UTF-8 bien formado, UTF-16, ASCII puro y, por último, GBK, y te dice qué regla decidió. GBK solo se elige cuando los bytes se leen como caracteres chinos comunes, así que las tramas binarias cortas se señalan como probablemente no texto en lugar de mostrarse como chino sin sentido.
Los mismos bytes se muestran como UTF-8, GBK, UTF-16LE, UTF-16BE e ISO-8859-1, y cada lectura indica si se decodifica limpiamente o no. Cuando el texto sale ilegible, la lectura correcta suele estar una fila más abajo.
NUL, CR, LF, ESC y otros bytes de control se muestran como ␀ ␍ ␊ ␛, de modo que un 00 al final o un 0D que falta en datos de protocolo salta a la vista. Al copiar se siguen obteniendo los caracteres reales.
Texto → Hex genera hex con espacios o compacto, listas 0x, escapes \x, un array de C al estilo de xxd -i, un byte[] de Java con valores con signo, un literal bytes de Python igual al de repr(), un []byte de Go o un volcado xxd — y la página puede volver a leer todos ellos.
El análisis y la decodificación se ejecutan localmente en JavaScript. Nada se sube, se almacena ni se pone en la URL, así que puedes pegar sin riesgo capturas de paquetes y logs de producción.
bytes.fromhex(h).decode() bytes.fromhex('48 65 6c 6c 6f').decode('utf-8') devuelve 'Hello'; se admiten espacios entre bytes, pero no un prefijo 0x. La operación inversa es s.encode('utf-8').hex(), o .hex(' ') para una salida con espacios. Pasa 'gbk' para decodificar o codificar texto chino en GBK.
Buffer.from(h, 'hex') Buffer.from(h, 'hex').toString('utf8') decodifica y Buffer.from(s, 'utf8').toString('hex') codifica. Una entrada no válida no produce error: la decodificación se detiene en el primer par incorrecto y se descarta un último dígito suelto, así que valida antes.
TextDecoder / TextEncoder Convierte los pares con parseInt(pair, 16) en un Uint8Array y luego llama a new TextDecoder('utf-8').decode(bytes). TextDecoder también lee 'gbk', 'big5' y 'shift_jis', pero TextEncoder solo produce UTF-8.
HexFormat.of() new String(HexFormat.of().parseHex(h), StandardCharsets.UTF_8) decodifica y HexFormat.of().formatHex(s.getBytes(StandardCharsets.UTF_8)) codifica. En versiones anteriores, formatea cada byte con String.format("%02x", b); evita Integer.toHexString(b), que imprime ffffffe4 para bytes negativos.
encoding/hex hex.DecodeString(h) devuelve los bytes y string(b) los convierte en cadena; hex.EncodeToString([]byte(s)) hace lo contrario. Es estricto: los espacios devuelven invalid byte: U+0020 ' ' y una longitud impar devuelve odd length hex string.
sscanf with %2hhx Recorre la cadena de dos en dos dígitos hacia un búfer unsigned char y añade un '\0' final. Para imprimir hex, haz un cast a unsigned char y usa %02X; de lo contrario, donde char tiene signo, los bytes por encima de 0x7F pueden imprimirse como FFFFFFE4.
hex2bin() / bin2hex() hex2bin('48656c6c6f') devuelve Hello y bin2hex('Hello') devuelve 48656c6c6f. El manual documenta que hex2bin() devuelve false con un E_WARNING ante una entrada de longitud impar o no válida.
xxd -r -p / xxd -p echo 48656c6c6f | xxd -r -p imprime Hello, y printf 'Hello' | xxd -p imprime 48656c6c6f. Usa printf en lugar de echo al codificar, porque echo añade un salto de línea final, 0a.
Convert.FromHexString() Encoding.UTF8.GetString(Convert.FromHexString(h)) decodifica y Convert.ToHexString(Encoding.UTF8.GetBytes(s)) codifica (en mayúsculas, sin separadores). FromHexString rechaza los espacios y el prefijo 0x. .NET Core y .NET 5+ no incluyen GBK: llama primero a Encoding.RegisterProvider(CodePagesEncodingProvider.Instance) y después a Encoding.GetEncoding(936).
48 65 6C 6C 6F 2C 20 E4 B8 96 E7 95 8C
Hello, 世界
Los siete primeros bytes son ASCII puro: 48 65 6C 6C 6F es Hello, 2C es una coma y 20 un espacio. E4 B8 96 y E7 95 8C son secuencias UTF-8 de tres bytes para 世 y 界 — la mayoría de los caracteres chinos ocupan tres bytes en UTF-8. Como todas las secuencias están bien formadas, la detección automática lo lee como UTF-8.
CE C2 B6 C8 3A 32 35 2E 33 A1 E6
温度:25.3℃
Muchos dispositivos serie envían el texto chino en GBK. Aquí CE C2 es 温 y B6 C8 es 度, 3A 32 35 2E 33 es el ASCII :25.3 y A1 E6 es el signo ℃ de ancho completo — dos bytes por cada carácter chino o símbolo. Leídos como UTF-8, los bytes no son válidos (CE inicia una secuencia de dos bytes, pero C2 no es un byte de continuación), y leídos como GBK son caracteres comunes, así que la detección automática elige GBK. Un conversor que solo conoce UTF-8 muestra aquí caracteres de reemplazo.
00000000: 4869 20e4 bda0 e5a5 bd0d 0a Hi ........
Hi 你好␍␊
Esto es exactamente lo que imprime printf 'Hi 你好\r\n' | xxd. El offset 00000000: y la columna de caracteres de la derecha se eliminan antes de decodificar; si se leyeran como datos, solo los ocho ceros ya se convertirían en cuatro bytes NUL al principio. Los dos últimos bytes, 0d 0a, son un salto de línea de Windows, que se muestra como ␍␊.
[-28, -72, -83, -26, -106, -121]
中文
Arrays.toString(bytes) imprime en decimal los bytes con signo de Java. Los valores negativos son bytes de 0x80 en adelante: -28 es 256 − 28 = 228 = 0xE4. Los seis bytes E4 B8 AD E6 96 87 son la codificación UTF-8 de 中文.
AT+CSQ\r\n
41 54 2B 43 53 51 0D 0A
Los módems y la mayoría de los juegos de comandos UART esperan que cada comando termine en retorno de carro más salto de línea. Un cuadro de texto solo produce 0A al pulsar Intro, así que marca Saltos de línea como CR LF y el final de línea pasa a ser 0D 0A.
653462646130653561356264
e4bda0e5a5bd → 你好
Cada byte aquí es un dígito hexadecimal ASCII (65 es e, 34 es 4, 62 es b), así que la primera decodificación produce otra cadena hex. Ocurre cuando una cadena hex se trata como texto y se vuelve a convertir. La página ofrece la segunda ronda, que da 你好. Para evitar falsas alarmas, solo la ofrece cuando el primer resultado tiene al menos 12 dígitos hex y el segundo se decodifica en texto real — fechas, marcas de tiempo, valores CRC32 y hashes MD5 no la activan.
Pégalo en el recuadro de la pestaña Hex → Texto en la forma que lo tengas: con espacios, compacto, valores 0x, escapes \x, un array de bytes o una pantalla entera de xxd. La línea bajo el recuadro indica cómo se interpretó.
El texto aparece a la derecha, con la codificación detectada automáticamente y el motivo. Si la detección se equivoca, la tabla de abajo muestra todas las lecturas; elige la correcta en el menú Codificación.
Los bytes de control como NUL, CR y LF se muestran como ␀ ␍ ␊. Desmarca Mostrar caracteres invisibles para ver el texto sin más y luego copia el resultado.
En la pestaña Texto → Hex, elige la codificación y un formato de salida — hex con espacios, valores 0x, un array de C, Java, Python o Go, o un volcado xxd. Marca CR LF para protocolos serie y de red.
El texto chino de software antiguo de Windows, de muchos dispositivos serie y de bases de datos heredadas está en GBK. Decodificarlo como UTF-8 falla o llena la salida de caracteres de reemplazo. Mira la tabla de codificaciones y usa la lectura que tenga sentido.
>>> bytes.fromhex('c4e3bac3').decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc4 in position 0: invalid continuation byte >>> bytes.fromhex('c4e3bac3').decode('gbk')
'你好' charCodeAt() devuelve una unidad de código UTF-16. Con ASCII coincide con el byte, así que el fallo solo aparece con otros caracteres, donde el resultado no es lo que envía ningún sistema UTF-8.
'你'.charCodeAt(0).toString(16) // '4f60' — a UTF-16 code unit
Buffer.from('你', 'utf8').toString('hex') // 'e4bda0' — the UTF-8 bytes El byte de Java tiene signo, así que los bytes de 0x80 en adelante son negativos. Integer.toHexString() trabaja con un int, imprime los valores negativos como hex sin signo de 32 bits y elimina los ceros a la izquierda.
Integer.toHexString(b) // "ffffffe4" for 0xE4, "a" for 0x0A
String.format("%02x", b) // "e4", "0a" Buffer.from(hex, 'hex') nunca lanza excepciones. Se detiene en el primer par que no es hex válido e ignora un último dígito suelto, así que una errata te da un buffer más corto en lugar de un error.
Buffer.from('486', 'hex') // <Buffer 48> — the 6 is silently dropped
Buffer.from('48zz65', 'hex') // <Buffer 48> — stops at zz if (!/^([0-9a-f]{2})*$/i.test(hex)) throw new Error('invalid hex');
Buffer.from(hex, 'hex'); Un conversor que solo elimina espacios lee el offset 00000000: como datos y, donde puede, la columna de caracteres como más hex. El resultado empieza con bytes NUL y se desvía a partir de ahí. Usa xxd -p para obtener hex sin más, o pega el volcado aquí, donde se reconocen las columnas.
00000000: 4869 20e4 bda0 e5a5 bd0d 0a Hi ........ → read naively: 00 00 00 00 48 69 20 e4 …
$ printf 'Hi 你好\r\n' | xxd -p 486920e4bda0e5a5bd0d0a
Los módems AT y muchos protocolos basados en líneas terminan cada comando con retorno de carro más salto de línea. Un comando que termina solo en 0A suele ignorarse sin ningún error.
41 54 2B 43 53 51 0A AT+CSQ followed by LF only
41 54 2B 43 53 51 0D 0A AT+CSQ followed by CR LF
0D 0A o el 00 del final — y haz el camino inverso para construir un comando, con finales de línea CR LF, que el dispositivo acepte.b'...' y Node.js como <Buffer ...>. Pega el fragmento del log tal cual para ver el texto, incluido si era UTF-8 o GBK.00 a FF, y el número de bytes es siempre la mitad del número de dígitos. Mayúsculas y minúsculas significan lo mismo. Los separadores, los prefijos y la sintaxis de array son solo notación: 4865, 48 65, 0x48, 0x65 y \x48\x65 son los mismos dos bytes.00 a 7F. Los caracteres imprimibles van de 20 (espacio) a 7E (~); el resto son caracteres de control, de los cuales 00 (NUL), 09 (tabulación), 0A (salto de línea), 0D (retorno de carro) y 1B (escape) son los que más aparecen en datos reales. UTF-8, GBK e ISO-8859-1 conservan estos valores, y por eso el texto en inglés sobrevive a casi cualquier codificación equivocada.C2–DF para dos bytes, E0–EF para tres, F0–F4 para cuatro — y cada byte siguiente debe estar en 80–BF. Esa estructura estricta explica que una frase en GBK casi nunca sea UTF-8 válido — en nuestra prueba con 33.910 frases chinas, 55 lo eran — y que la detección automática confíe en una decodificación UTF-8 limpia. Con un solo carácter chino es distinto: alrededor del 18% de los caracteres GBK forman por casualidad una secuencia UTF-8 válida de dos bytes.81 a FE seguido de un byte final de 40 a FE, excepto 7F. Como el rango del byte final es tan amplio, un texto UTF-8 corto leído como GBK suele decodificarse sin ningún error en caracteres sin relación — E4 BD A0 E5 A5 BD (你好) se convierte en 浣犲ソ —, y por eso esta página prueba primero UTF-8. GB18030 amplía GBK con secuencias de cuatro bytes para caracteres más raros; la decodificación de esta página las acepta.41 00 — y UTF-16BE el más significativo — 00 41. Las API de Windows y muchos archivos usan little-endian y pueden empezar con una marca de orden de bytes, FF FE; los archivos UTF-8 a veces empiezan con EF BB BF. La detección automática elimina la marca de orden de bytes y lo indica.getBytes(), encode(), la configuración de un terminal serie, el charset de una conexión a base de datos — fija la codificación de forma explícita y anótala junto al hex, para que el otro lado no tenga que adivinarla.charCodeAt() de JavaScript o los valores char de Java, dan unidades de código UTF-16, no bytes codificados. Codifica primero la cadena con TextEncoder, Buffer.from() o getBytes(StandardCharsets.UTF_8) y después formatea los bytes.%02x o un equivalente, nunca una simple conversión de número a hex. a y 0a se parecen en un log, pero concatenar valores sin rellenar produce una cadena de longitud impar o, peor aún, una que se decodifica en bytes distintos.00 a FF, así que 48656c6c6f son los cinco bytes 48, 65, 6C, 6C, 6F. Segundo, decodifica esos bytes con una codificación de caracteres. En ASCII y UTF-8, 48 es H, 65 es e, 6C es l y 6F es o, lo que da Hello. En el segundo paso es donde los resultados difieren: los bytes por encima de 7F significan caracteres distintos en UTF-8, GBK y otras codificaciones, y por eso esta página detecta la codificación y muestra todas las lecturas una al lado de otra. C4 E3 BA C3 es 你好 en GBK pero UTF-8 no válido, y E4 BD A0 E5 A5 BD es 你好 en UTF-8 pero se convierte en 浣犲ソ al leerlo como GBK. Mira la tabla de codificaciones bajo el resultado: la fila que se lee como texto con sentido es la codificación en la que se escribieron los datos. Con solo uno o dos caracteres, la detección automática no siempre puede distinguirlo: D2 BB es UTF-8 válido (һ) y también GBK (一), así que revisa la línea GBK que la página muestra bajo el resultado. Conviene descartar otras dos causas: un dígito hex de más o de menos, que desplaza medio byte todos los bytes siguientes, y pegar un volcado hexadecimal con la columna de offsets todavía incluida. Si lo que tienes ya es texto ilegible (como 浣犲ソ) y no hex, pega ese texto en el conversor de codificación. E4 BD A0 E5 A5 BD de 你好 aparecen como 浣犲ソ. O el texto contiene bytes de control como 00 o 0D 0A, que se ven como cuadraditos o saltos de línea. Pega el hex aquí: la tabla de codificaciones muestra las lecturas UTF-8 y GBK una junto a otra, y los bytes de control aparecen como ␀ ␍ ␊. 00 a 7F: letras, dígitos, signos de puntuación y caracteres de control. UTF-8 está diseñado para que esos mismos bytes signifiquen exactamente los mismos caracteres, y usa secuencias de bytes de 80 en adelante para todo lo demás — 2 bytes para letras latinas acentuadas, 3 para la mayoría de los caracteres chinos, japoneses y coreanos, 4 para los emoji. Así que, para texto en inglés sin más, hex a ASCII y hex a UTF-8 dan resultados idénticos. Difieren en cuanto un byte vale 80 o más: un conversor que solo conoce ASCII no puede mostrar esos bytes como caracteres, mientras que UTF-8 los decodifica en todo el rango de Unicode. Para ver qué representa cada byte de 00 a 7F, consulta la tabla ASCII. E4 BD A0. En GBK y GB2312 ocupan 2 bytes: 你 es C4 E3. En UTF-16 los caracteres del plano multilingüe básico ocupan 2 bytes, y el orden de los bytes importa: 你 es 60 4F en UTF-16LE y 4F 60 en UTF-16BE. Los caracteres poco frecuentes fuera de ese plano ocupan 4 bytes en UTF-8, 4 en UTF-16 (un par sustituto) y 4 en GB18030. Cambia la codificación en la pestaña Texto → Hex para ver el número de bytes de tu propio texto. bytes.fromhex() y luego decodifica: bytes.fromhex('48656c6c6f').decode('utf-8') devuelve 'Hello'. fromhex acepta espacios entre bytes, así que bytes.fromhex('48 65 6c 6c 6f') también funciona, pero rechaza un prefijo 0x con un ValueError. Para datos GBK, decodifica con 'gbk': bytes.fromhex('c4e3bac3').decode('gbk') devuelve '你好', mientras que decodificar los mismos bytes como UTF-8 lanza UnicodeDecodeError. La operación inversa es '你好'.encode('utf-8').hex(), que devuelve 'e4bda0e5a5bd'; pasa un separador, como .hex(' '), para obtener la salida separada por espacios. Buffer.from('48656c6c6f', 'hex').toString('utf8') devuelve 'Hello'. Cuidado con las entradas incorrectas: Node no lanza ninguna excepción — se detiene en el primer par no válido y descarta en silencio un último dígito suelto, así que Buffer.from('486', 'hex') es un buffer de un solo byte. En el navegador, construye los bytes tú mismo y usa TextDecoder, que también lee GBK: new TextDecoder('gbk').decode(Uint8Array.from('c4e3bac3'.match(/../g), h => parseInt(h, 16))) devuelve '你好'. No uses charCodeAt() para obtener bytes: '你'.charCodeAt(0).toString(16) es '4f60', una unidad de código UTF-16, no los bytes UTF-8 e4bda0. unsigned char y después termínalo: for (size_t i = 0; i < n; i++) sscanf(hex + 2 * i, "%2hhx", &buf[i]); buf[n] = '\0'; donde n es strlen(hex) / 2. Con hex igual a 48656c6c6f2c20e4b896e7958c, imprimir buf da Hello, 世界 en un terminal UTF-8. Para la dirección contraria, imprime cada byte con printf("%02X ", (unsigned char)s[i]). El cast es importante: en plataformas donde char tiene signo, un byte como 0xE4 se extendería con signo y se imprimiría como FFFFFFE4. En C++, añade cada par a la cadena con s.push_back(static_cast<char>(std::stoi(hex.substr(i, 2), nullptr, 16))); el mismo hex da Hello, 世界. new String(HexFormat.of().parseHex(hex), StandardCharsets.UTF_8); para datos GBK usa Charset.forName("GBK") en su lugar. En sentido contrario, la sorpresa clásica es ffffffe4, porque el byte de Java tiene signo, mientras que Integer.toHexString() recibe un int. El byte 0xE4 se almacena como -28; al ampliarlo a int conserva el valor -28, y toHexString imprime los números negativos como su valor sin signo de 32 bits, ffffffe4. El mismo método también elimina los ceros a la izquierda, así que 0x0A sale como a. Usa String.format("%02x", b), que formatea un byte negativo como su valor sin signo de 8 bits, o Integer.toHexString(b & 0xff) rellenando con ceros. En Java 17 y posteriores, HexFormat.of().formatHex(bytes) convierte un array completo, y HexFormat.of().parseHex(hex) hace lo contrario. hex2bin() decodifica una cadena hex en una cadena binaria y bin2hex() hace lo contrario: bin2hex('Hello') devuelve 48656c6c6f. Según el manual de PHP, hex2bin() devuelve false y emite un E_WARNING cuando la entrada tiene longitud impar o no es hexadecimal válido, así que elimina los espacios y los prefijos 0x antes de llamarla. Las cadenas de PHP son bytes, de modo que el resultado tiene la codificación que usara el texto original — convierte la salida GBK con mb_convert_encoding() si tu página está en UTF-8. xxd (incluidos -u, -c y -g), hexdump -C, hex.Dump de Go, od -A x -t x1 y od -t x1z de GNU, y expande la línea * que hexdump y od imprimen en lugar de las filas repetidas. También admite hexdump sin opciones y od -x, que imprimen palabras de 16 bits en vez de bytes: en una máquina little-endian los bytes 48 69 se imprimen como 6948, así que la página vuelve a intercambiar cada par y usa el último offset para quitar el byte de relleno añadido a los datos de longitud impar. Cada variante de xxd, hexdump y od se probó con 600 volcados reales de datos aleatorios. a en lugar de 0a), un carácter cortado al copiar o una letra que se coló, como O en lugar de 0. Una cadena hex obtenida convirtiendo todos los bytes como un único número grande, como hex(int.from_bytes(data, 'big')) en Python, pierde el cero del principio: \r\n sale como 0xd0a. La página no adivina qué dígito falta, porque adivinar mal desplaza medio byte todos los bytes siguientes y produce un sinsentido convincente. En su lugar, ofrece dos correcciones de un clic — añadir un 0 al principio o quitar el último dígito — para que compares los resultados. Los valores escritos uno a uno con prefijo, como 0x0 0xa, no dan problema: cada uno se lee como un byte completo. Codificación y Formato
La tabla ASCII completa: 128 caracteres en decimal, hexadecimal, octal y binario, más un convertidor texto ↔ ASCII. Cada carácter de control trae su secuencia de escape, su notación caret y dónde te lo encuentras.
Codificación y Formato
Decodifica y codifica Base64 online de forma gratuita. Conversión en tiempo real con soporte completo de UTF-8 y emojis. 100% privado — funciona en tu navegador. Sin registro.
Codificación y Formato
Decodifica una cadena Base64 o data URI de vuelta a una imagen en tu navegador. Previsualiza, lee dimensiones y MIME, luego descarga como PNG, JPG, GIF, SVG. Sin subir.
Codificación y Formato
Convierte CSV a JSON en tu navegador. RFC 4180, inferencia de tipos, fila de cabecera, seguro para big-int. 100% privado, sin carga.
Codificación y Formato
Pega el texto ilegible y recupera el original. Se prueban y ordenan todas las cadenas de codificación plausibles — UTF-8, GBK, Big5, Shift_JIS, EUC-KR, Windows-1252 — y se muestra la cadena exacta. Gratis y todo en tu navegador.
Codificación y Formato
Pega un archivo .env y obtén JSON al instante. Tus contraseñas, claves API y tokens nunca salen del navegador: 100% privado, sin subidas, gratis.