Wikipedia diz
Os esquemas de codificação Base64 são comumente usados quando há a necessidade de codificar dados binários que precisam ser armazenados e transferidos por mídia projetada para lidar com dados de texto. Isso é para garantir que os dados permaneçam intactos sem modificação durante o transporte.
Mas não é que os dados sejam sempre armazenados / transmitidos em binário porque a memória que nossas máquinas armazenam é binária e depende apenas de como você os interpreta? Portanto, se você codifica o padrão de bits 010011010110000101101110
como Man
em ASCII ou como TWFu
em Base64, acabará armazenando o mesmo padrão de bits.
Se a codificação final é em zeros e uns e todas as máquinas e mídias podem lidar com eles, como importa se os dados são representados como ASCII ou Base64?
O que significa "mídia projetada para lidar com dados de texto"? Eles podem lidar com binário => eles podem lidar com qualquer coisa.
Obrigado a todos, acho que entendo agora.
Quando enviamos dados, não podemos ter certeza de que os dados serão interpretados no mesmo formato que pretendemos. Portanto, enviamos dados codificados em algum formato (como Base64) que ambas as partes entendem. Dessa forma, mesmo que o remetente e o destinatário interpretem as mesmas coisas de maneira diferente, mas como eles concordam com o formato codificado, os dados não serão interpretados incorretamente.
Se eu quiser enviar
Hello
world!
Uma maneira é enviá-lo em ASCII como
72 101 108 108 111 10 119 111 114 108 100 33
Mas o byte 10 pode não ser interpretado corretamente como uma nova linha na outra extremidade. Então, usamos um subconjunto de ASCII para codificá-lo assim
83 71 86 115 98 71 56 115 67 110 100 118 99 109 120 107 73 61 61
que, ao custo de mais dados transferidos para a mesma quantidade de informações, garante que o receptor possa decodificar os dados da maneira pretendida, mesmo que o receptor tenha interpretações diferentes para o restante do conjunto de caracteres.