Wikipedia dice
Los esquemas de codificación Base64 se usan comúnmente cuando existe la necesidad de codificar datos binarios que deben almacenarse y transferirse a través de medios diseñados para manejar datos textuales. Esto es para garantizar que los datos permanezcan intactos sin modificaciones durante el transporte.
Pero, ¿no es que los datos siempre se almacenan / transmiten en binario porque la memoria que tienen nuestras máquinas almacena binarios y solo depende de cómo lo interpretes? Entonces, ya sea que codifique el patrón de bits 010011010110000101101110
como Man
en ASCII o como TWFu
en Base64, eventualmente almacenará el mismo patrón de bits.
Si la codificación final es en términos de ceros y unos y cada máquina y medio puede manejarlos, ¿qué importancia tiene si los datos se representan como ASCII o Base64?
¿Qué significa "medios diseñados para tratar datos textuales"? Pueden lidiar con binary => pueden lidiar con cualquier cosa.
Gracias a todos, creo que entiendo ahora.
Cuando enviamos datos, no podemos estar seguros de que los datos se interpreten en el mismo formato que pretendíamos. Entonces, enviamos datos codificados en algún formato (como Base64) que ambas partes entienden. De esa manera, incluso si el emisor y el receptor interpretan las mismas cosas de manera diferente, pero debido a que están de acuerdo con el formato codificado, los datos no se interpretarán incorrectamente.
Si quiero enviar
Hello
world!
Una forma es enviarlo en ASCII como
72 101 108 108 111 10 119 111 114 108 100 33
Pero el byte 10 podría no interpretarse correctamente como una nueva línea en el otro extremo. Entonces, usamos un subconjunto de ASCII para codificarlo así
83 71 86 115 98 71 56 115 67 110 100 118 99 109 120 107 73 61 61
que a costa de transferir más datos por la misma cantidad de información, asegura que el receptor puede decodificar los datos de la manera prevista, incluso si el receptor tiene diferentes interpretaciones para el resto del conjunto de caracteres.