Moin!
Sup!
Die müßten natürlich extra eingesetzt werden. Nach meinen Tests vermute ich, daß base64 für ein Leerzeichen immer g schreibt, bin mir aber nicht sicher.
Ich denke, da Base64 8 Bit-Folgen in 7-Bit-Folgen kodiert, wird wohl kaum immer ein g rauskommen bei einem Leerzeichen...
Base674 codiert eine 24-Bit-Folge (3 Byte) in 6-Bit-Happen in eine 4-Zeichen-Folge (4 Byte) mit je 6 Bits pro Zeichen.
Die zur Codierung von je 6 Bits verwendeten Zeichen sind in dieser Tabelle http://media.it.kth.se/SONAH/ANALYSYS/acts/sonah/guide/mm_mail/mmm31.htm zu finden.
Dort ist nachzulesen, dass die 32 (der ASCII-Wert für das Leerzeichen) mit "g" übersetzt wird. Dies gilt allerdings nur für das ERSTE Leerzeichen einer Folge. Denn beim zweiten Leerzeichen passen die gewählten 6 Bits ja nicht mehr, sondern es wird byteübergreifend gruppiert.
00100000 = 0x20 = 32
00100000 00100000 00100000 = drei Leerzeichen.
Von Links nach rechts werden 6-Bit-Gruppen gebildet:
001000 000010 000000 100000
Die Übersetzung gemäß Tabelle:
G C A g
Mag sein, dass der Vorgang nicht mit dem MSB, sondern mit dem LSB beginnt, aber das Prinzip dürfte klar geworden sein: Drei Leerzeichen hintereinander sind keinesfalls immer derselbe Buchstabe in Base64.
- Sven Rautenberg