Calcula con grupos de tres bytes y relleno
Base64 estándar de RFC 4648 representa tres bytes con cuatro caracteres. El último grupo de un byte necesita ==; el de dos, =; el de tres, ninguno. Con relleno y sin saltos añadidos, la longitud es 4 * Math.ceil(n / 3), donde n es el número de bytes de entrada. Cero bytes dan longitud cero.
n = new TextEncoder().encode(input).length
length = 4 * Math.ceil(n / 3)
f 1 Zg== 4
fo 2 Zm8= 4
foo 3 Zm9v 4
foob 4 Zm9vYg== 8Estos ejemplos fijos se ejecutaron con la función real. f, fo y foo producen cuatro caracteres aunque sus longitudes difieren; cambia el relleno. foob tiene cuatro bytes y produce ocho caracteres. El relleno indica el formato del grupo final, no caracteres añadidos al original.
Distingue caracteres, bytes y saltos de línea
Moyoutil usa TextEncoder para obtener bytes UTF-8. El ejemplo 가 ocupa tres bytes y se convierte en 6rCA, cuatro caracteres. f seguido de un salto LF ocupa dos bytes y produce Zgo=. Los espacios y saltos del original son datos al codificar. La fórmula no incluye cabeceras HTTP, envolturas JSON ni prefijos de URL de datos.
base64("가") // 6rCA
base64("f\n") // Zgo=Introduce el texto y selecciona Codificar. Para decodificar, introduce solo el resultado Base64 estándar. La decodificación elimina espacios en blanco de su entrada; la codificación conserva los del original. No se admiten - y _ de Base64URL ni recuperación de archivos binarios arbitrarios. /w== se lee como Base64 pero da error porque no es texto UTF-8. Cambiar la entrada borra el resultado anterior y desactiva la copia; convierte de nuevo.
Preguntas frecuentes
¿Base64 siempre aumenta el tamaño cerca del 33%?
En entradas grandes la proporción se acerca a 4/3, pero en entradas pequeñas el relleno influye mucho. Un byte produce cuatro caracteres. Cuenta los bytes y comprueba si se incluye relleno para calcular la longitud exacta.
¿La interfaz convierte una entrada vacía en cero caracteres?
La fórmula devuelve cero para cero bytes, pero la interfaz de Moyoutil pide contenido si la entrada está vacía. El caso límite de la fórmula y la política de entrada son distintos.