Subir un archivo
  1. base64hub
  2. Herramientas de texto
  3. UTF-8 a Base64

UTF-8 a Base64: codificar texto Unicode y emoji

Cada carácter se convierte en sus bytes UTF-8, que después se codifican en Base64, así que los emoji, las tildes y cualquier escritura salen exactos byte a byte y se decodifican igual en todas partes.

Gratis sin registro, sin límites Local no se sube nada 1–4 bytes por carácter en UTF-8 Actualizado 27 oct 2026
Entrada 0 BSalida 0 BTamaño –

Se procesa en tu navegador. Esta página no puede enviar tus datos a ninguna parte – cómo lo sabemos

Cómo codificar texto UTF-8 a Base64

  1. Escribe o pega tu texto en Entrada · texto. Juego de caracteres ya está en UTF-8.
  2. El Base64 aparece en Salida · Base64. La cifra Entrada bajo la herramienta es el número de bytes UTF-8; el contador sobre el cuadro cuenta los caracteres como lo hace JavaScript, así que un emoji cuenta como 2.
  3. Marca URL-safe (- _) y Sin relleno (=) para URL y tokens, o elige un Ajuste de línea para email o PEM.
  4. Copia la salida o descárgala como base64.txt.

Base64 a UTF-8 convierte el resultado de nuevo en texto.

Cómo convierte UTF-8 los caracteres en bytes

UTF-8 usa de 1 a 4 bytes por punto de código. ASCII se queda en 1 byte, y por eso el texto en inglés se codifica igual en UTF-8 y en ASCII. Todo lo demás ocupa más:

CarácterPunto de códigoBytes UTF-8Base64
AU+004141QQ==
éU+00E9C3 A9w6k=
€U+20ACE2 82 AC4oKs
日本語U+65E5 U+672C U+8A9E9 bytes, 3 cada uno5pel5pys6Kqe
😀U+1F600F0 9F 98 808J+YgA==

Como Base64 añade un tercio sobre los bytes, una frase en chino o japonés crece aproximadamente al cuádruple al pasar de caracteres a caracteres Base64, y un emoji solo se convierte en 8 caracteres. Tenlo en cuenta en los campos con límite de longitud; la calculadora de tamaño ayuda.

Secuencias de emoji y tonos de piel

Lo que parece un solo emoji suele ser varios puntos de código pegados. Un tono de piel es un modificador aparte, y los emoji de familias o profesiones unen a varias personas con un carácter de unión de ancho cero invisible (U+200D):

EmojiPuntos de códigoBytes UTF-8Base64
😀148J+YgA==
👍🏽2 (pulgar arriba + tono de piel medio)88J+RjfCfj70=
👨‍👩‍👧5 (tres personas + dos uniones)188J+RqOKAjfCfkanigI3wn5Gn

Si cortas una cadena Base64 o sus bytes decodificados en mitad de una secuencia así, quedan caracteres rotos, así que nunca trunques UTF-8 codificado en un byte cualquiera.

Mismo texto, bytes distintos: normalización Unicode

Algunos caracteres tienen dos grafías válidas en Unicode. é puede ser el punto de código único U+00E9 (compuesto, NFC) o e seguida de U+0301 COMBINING ACUTE ACCENT (descompuesto, NFD). Los dos se ven igual, pero los bytes son distintos:

TextoFormaBytesBase64
éNFCC3 A9w6k=
éNFD65 CC 81ZcyB
naïveNFC6bmHDr3Zl
naïveNFD7bmFpzIh2ZQ==

Los nombres de archivo del antiguo sistema de archivos HFS+ de Apple se guardan descompuestos, mientras que la mayoría de los teclados producen texto compuesto. Si comparas valores Base64, los firmas o los usas como claves, normaliza primero. Esta herramienta codifica exactamente los puntos de código que pegas y no normaliza.

UTF-8 a Base64 en código

En JavaScript, TextEncoder siempre produce UTF-8. Normaliza primero cuando la entrada pueda venir de fuentes distintas:

const text = "e\u0301".normalize("NFC");
Buffer.from(text, "utf8").toString("base64");   // "w6k=" (Node.js)
new TextEncoder().encode(text);                  // Uint8Array [195, 169]

En los navegadores, los bytes de TextEncoder pueden ir a bytes.toBase64() donde esté disponible (Uint8Array.toBase64), o pasar por el helper de btoa de la página de JavaScript.

import base64, unicodedata

s = unicodedata.normalize("NFC", "nai\u0308ve")
base64.b64encode(s.encode("utf-8")).decode()   # 'bmHDr3Zl'

Consulta Base64 en Python para archivos y streaming.

Preguntas frecuentes

¿El Base64 de UTF-8 es lo mismo que el Base64 normal?

Sí. Base64 siempre codifica bytes; «UTF-8 a Base64» solo indica qué bytes. Para texto ASCII simple, los bytes UTF-8 son iguales que los ASCII, así que la salida es idéntica en ambos casos.

¿Por qué dos cadenas que parecen idénticas dan Base64 distintos?

Unicode puede escribir algunos caracteres de más de una forma. é como un solo punto de código es w6k=, mientras que e más un acento combinable es ZcyB. Normaliza a NFC antes de codificar si los valores tienen que coincidir.

¿El codificador añade una marca de orden de bytes UTF-8?

No. La salida empieza directamente con los bytes de tu texto. Si un consumidor exige una BOM, el Base64 tiene que empezar por 77u/, que es la codificación de los bytes EF BB BF.

¿Cuántos bytes ocupa un emoji?

Un emoji de un solo punto de código ocupa 4 bytes en UTF-8. Los emoji con tono de piel o las familias unidas son varios puntos de código: 👍🏽 son 8 bytes y la familia 👨‍👩‍👧, 18.