Pourquoi utilisons-nous Base64?

Wikipédia dit

De l'encodage Base64 régimes sont souvent utilisés lorsqu'il est nécessaire de coder en binaire des données qui doivent être stockées et transférées sur les médias qui sont conçus pour traiter les données textuelles. Ceci est pour s'assurer que les données restent intactes, sans modification pendant le transport.

Mais n'est-il pas que les données sont toujours stockées et/ou transmise en binaire parce que la mémoire que nos machines ont stocker les binaires et cela dépend comment vous l'interpréter? Donc, si vous encodez le motif de bits 010011010110000101101110 comme Man en ASCII ou en tant que TWFu en Base64, vous êtes finalement va stocker le même modèle de bits.

Si l'ultime encodage est en termes de zéros et de uns et de chaque machine et les médias peuvent traiter avec eux, comment est-ce grave si les données sont représentées au format ASCII ou Base64?

Que signifie "médias qui sont conçus pour traiter les données textuelles"? Ils peuvent traiter avec les binaires => ils peuvent faire face à quoi que ce soit.


Merci tout le monde, je crois que je comprends maintenant.

Lorsque nous envoyer plus de données, nous ne pouvons pas être sûr que les données seront interprétées dans le même format que nous avons prévu. Ainsi, nous envoyons plus de données codées dans un format quelconque (comme Base64) que les deux parties comprennent. De cette façon, même si l'expéditeur et le récepteur interpréter les mêmes choses différemment, mais parce qu'ils sont d'accord sur le format à codage, les données ne seront pas interprété à tort.

De Marque Byers exemple

Si je veux envoyer

Hello
world!

Une solution est de l'envoyer en ASCII comme

72 101 108 108 111 10 119 111 114 108 100 33

Mais octet 10 peut ne pas être correctement interprétée comme un retour à la ligne, à l'autre extrémité. Ainsi, nous utilisons un sous-ensemble de l'ASCII à coder comme ceci

83 71 86 115 98 71 56 115 67 110 100 118 99 109 120 107 73 61 61

qui, au coût de plus de transfert de données pour la même quantité d'information s'assure que le destinataire puisse le décoder les données de la manière prévue, même si le récepteur se trouve à avoir des interprétations différentes pour le reste du jeu de caractères.

  • Contexte historique: les serveurs de Messagerie utilisés pour être en ASCII 7 bits. Beaucoup d'entre eux serait le haut de bits à 0 si vous avez eu à envoyer 7-valeurs des bits seulement. Voir en.wikipedia.org/wiki/Email#Content_encoding
  • Vous pouvez (ou historiquement pourrait) se fonder uniquement sur le bas de l'ascii 7bits être la même entre les machines ou traduisible entre les machines, en particulier lorsqu'il n'est pas sur toutes les machines utilisées ascii
  • Nous utilisons base64 parce que c'est plus lisible que Perl
  • vous plaisantez. Perl est dur à lire, mais en base64 est illisible à tous.
  • Pour l'enregistrement, le plus de bonne réponse ci-dessous est Aiden Bell. Le 7/8 bits préoccupations, encodage, etc, bien que valides, ne sont pas la raison de base: données arbitraires ne doit pas être interprété à tort comme protocole. Le transformer en base64 empêche cela. E. g. des problèmes avec les pièces jointes des emails contenant des pièces jointes.
  • Votre image est manquant
  • octet 10 peut ne pas être correctement interprétée comme un retour à la ligne, à l'autre bout." pourquoi? les deux parties ont convenu de l'ASCII et ils doivent être de les interpréter correctement!

InformationsquelleAutor Lazer | 2010-08-21