ウィキペディアは言う
Base64エンコードスキームは、テキストデータを処理するように設計されたメディアを介して保存および転送する必要があるバイナリデータをエンコードする必要がある場合に一般的に使用されます。これは、転送中にデータが変更されることなくそのままであることを保証するためです。
しかし、私たちのマシンが持っているメモリはバイナリを格納し、それはあなたがそれをどのように解釈するかに依存するので、データは常にバイナリで格納/送信されるということではありませんか?したがって、ビットパターン010011010110000101101110
をMan
ASCII としてエンコードする場合でもTWFu
、Base64 としてエンコードする場合でも、最終的には同じビットパターンを格納することになります。
究極のエンコーディングがゼロと1に関するものであり、すべてのマシンとメディアがそれらを処理できる場合、データがASCIIまたはBase64として表されているかどうかはどうですか?
「テキストデータを扱うように設計されたメディア」とはどういう意味ですか?彼らはバイナリを扱うことができます=>彼らは何をでも扱うことができます。
みなさん、ありがとうございます。
データを送信するとき、意図したとおりの形式でデータが解釈されるかどうかはわかりません。したがって、両方の当事者が理解できる何らかの形式(Base64など)でコード化されたデータを送信します。同じ方法で送信者と受信者が異なる方法で解釈しても、コード化された形式に同意するため、データが誤って解釈されることはありません。
送りたい場合
Hello
world!
1つの方法は、次のようにASCIIで送信することです。
72 101 108 108 111 10 119 111 114 108 100 33
ただし、バイト10は、反対側の改行として正しく解釈されない場合があります。したがって、ASCIIのサブセットを使用して、次のようにエンコードします
83 71 86 115 98 71 56 115 67 110 100 118 99 109 120 107 73 61 61
同じ情報量で転送されるデータが増えるという犠牲を払って、レシーバーが残りの文字セットの解釈が異なる場合でも、レシーバーが意図した方法でデータをデコードできるようにします。