Wikipedia mówi
Schematy kodowania Base64 są powszechnie stosowane, gdy zachodzi potrzeba kodowania danych binarnych, które muszą być przechowywane i przesyłane za pośrednictwem mediów zaprojektowanych do obsługi danych tekstowych. Ma to zapewnić, że dane pozostaną nienaruszone bez modyfikacji podczas transportu.
Ale czy nie chodzi o to, że dane są zawsze przechowywane / przesyłane w formie binarnej, ponieważ pamięć, którą przechowują nasze maszyny, zależy tylko od tego, jak je interpretujesz? Tak więc, niezależnie od tego, czy kodujesz wzór bitowy 010011010110000101101110
jak Man
w ASCII czy jak TWFu
w Base64, ostatecznie zapiszesz ten sam wzór bitowy.
Jeśli ostateczne kodowanie jest w postaci zer i jedynek, a każda maszyna i nośnik może sobie z nimi poradzić, jak ważne jest, czy dane są reprezentowane jako ASCII czy Base64?
Co to znaczy „media przeznaczone do obsługi danych tekstowych”? Potrafią poradzić sobie z plikiem binarnym => poradzą sobie ze wszystkim.
Dzięki wszystkim, myślę, że teraz rozumiem.
Kiedy przesyłamy dane, nie możemy być pewni, że dane będą interpretowane w takim samym formacie, jaki zamierzaliśmy. Wysyłamy więc dane zakodowane w jakimś formacie (np. Base64), który obie strony rozumieją. W ten sposób nawet jeśli nadawca i odbiorca interpretują to samo inaczej, ale ponieważ zgadzają się co do formatu kodowanego, dane nie zostaną źle zinterpretowane.
Jeśli chcę wysłać
Hello
world!
Jednym ze sposobów jest wysłanie go w formacie ASCII
72 101 108 108 111 10 119 111 114 108 100 33
Ale bajt 10 może nie być poprawnie interpretowany jako nowy wiersz na drugim końcu. Tak więc używamy podzbioru ASCII do kodowania go w ten sposób
83 71 86 115 98 71 56 115 67 110 100 118 99 109 120 107 73 61 61
co kosztem większej ilości danych przesłanych dla tej samej ilości informacji zapewnia odbiorcy możliwość dekodowania danych w zamierzony sposób, nawet jeśli odbiorca zdarzy się mieć różne interpretacje dla reszty zestawu znaków.