So kodieren Sie ASCII-Text in Base64
- Tippen oder fügen Sie den Text in Eingabe · Text ein. Der Zeichensatz ist auf ASCII voreingestellt.
- Das Base64 erscheint in Ausgabe · Base64. Enthält der Text Zeichen außerhalb von ASCII, sagt ein Hinweis unter dem Tool, wie viele durch
?ersetzt wurden. - Entfernen oder ersetzen Sie diese Zeichen, oder stellen Sie den Zeichensatz auf UTF-8 um, wenn der Empfänger damit umgehen kann.
- Kopieren Sie das Ergebnis oder laden Sie es als
base64.txtherunter.
Den umgekehrten Weg geht Base64 in ASCII.
Was als ASCII zählt
ASCII definiert 128 Codes, 0 bis 127, jeweils ein Byte mit gelöschtem höchstem Bit. Die Codes 32 bis 126 sind die druckbaren Zeichen: das Leerzeichen, Ziffern, die englischen Buchstaben und gängige Satzzeichen. Die Codes 0 bis 31 und 127 sind Steuerzeichen wie Tab (9), Zeilenvorschub (10) und Wagenrücklauf (13).
Alles andere, darunter é, ß, €, typografische Anführungszeichen, geschützte Leerzeichen und Emoji, ist kein ASCII. Text, der aus Textverarbeitungen und Webseiten kopiert wurde, enthält sie oft unbemerkt, typischerweise als typografische Anführungszeichen und Gedankenstriche, und der Ersetzungshinweis fängt sie ab.
Beispiele
| Text | Base64 | Hinweis |
|---|---|---|
Hello, ASCII! | SGVsbG8sIEFTQ0lJIQ== | Wie bei UTF-8 |
200 OK | MjAwIE9L | 6 Bytes, kein Padding |
{}[]<> | e31bXTw+ | Satzzeichen sind gewöhnliche Bytes |
a, Tab, b | YQli | Tab ist das Byte 09 |
line1 CR LF line2 | bGluZTENCmxpbmUy | 0D 0A in der Mitte |
user:pass | dXNlcjpwYXNz | Zugangsdaten für HTTP Basic Auth |
Grüße | R3I/P2U= | 2 Zeichen durch ? ersetzt |
naïve café | bmE/dmUgY2FmPw== | 2 Zeichen durch ? ersetzt |
Da jedes Zeichen als ein Byte kodiert wird, lässt sich auch die Größe leicht vorhersagen: n Zeichen ergeben 4 × ⌈n / 3⌉ Base64-Zeichen.
Warum ASCII und Base64 zusammengehören
Base64 wurde für Kanäle entworfen, die nur 7-Bit-ASCII zuverlässig transportierten. Frühe E-Mail (SMTP) ist das klassische Beispiel: Bytes über 127 konnten unterwegs entfernt oder verändert werden, daher wurden binäre Anhänge und nicht englischer Text in eine Teilmenge von ASCII kodiert, die jedes System verarbeiten konnte. Das ist bis heute der Grund, warum es Base64 gibt, und es erklärt das Alphabet: 64 Zeichen, die druckbar sind, in jedem von ASCII abgeleiteten Zeichensatz gleich aussehen und, abgesehen von + und /, in gängigen Formaten keine Sonderbedeutung haben. So funktioniert Base64 erklärt die Mechanik.
Manche Systeme erwarten nach wie vor nur ASCII, etwa Altschnittstellen und HTTP-Header-Werte, bei denen Server mit Nicht-ASCII-Zeichen unterschiedlich umgehen. Wer hier mit dem ASCII-Zeichensatz kodiert, weiß, dass die Eingabe für solche Systeme unbedenklich ist, bevor sie irgendwohin geht. Speziell für den Authorization-Header erzeugt der Basic-Auth-Header-Generator den vollständigen Wert Basic dXNlcjpwYXNz.
ASCII in Base64 im Code
Python lehnt Nicht-ASCII-Zeichen standardmäßig ab, was eine nützliche Prüfung ist:
import base64
base64.b64encode("200 OK".encode("ascii")).decode() # 'MjAwIE9L'
"Grüße".encode("ascii")
# UnicodeEncodeError: 'ascii' codec can't encode characters in position 2-3
"Grüße".encode("ascii", errors="replace") # b'Gr??e', like this tool
In JavaScript akzeptiert btoa() jedes Zeichen bis Code 255 und erkennt daher Latin-1-Buchstaben wie ü nicht. Prüfen Sie die Zeichenkette vorher mit /^[\x00-\x7F]*$/.test(s), wenn sie reines ASCII sein muss. Mehr auf den Seiten zu Python und JavaScript.
Häufige Fragen
Unterscheidet sich ASCII in Base64 von UTF-8 in Base64?
Bei reinem ASCII-Text nicht. UTF-8 wurde so entworfen, dass die ersten 128 Zeichen ihre ASCII-Bytewerte behalten, daher ergibt Hello, ASCII! in beiden Fällen SGVsbG8sIEFTQ0lJIQ==. Unterschiede gibt es erst, wenn der Text andere Zeichen enthält.
Was passiert mit Zeichen wie ü oder Emoji?
ASCII hat für sie keinen Code, daher wird jedes zu ? (Byte 3F), und das Tool meldet, wie viele ersetzt wurden. Grüße wird als R3I/P2U= kodiert, was dekodiert Gr??e ergibt.
Ist die Base64-Ausgabe selbst ASCII?
Ja. Alle 65 Zeichen, die Base64 verwendet (A–Z, a–z, 0–9, +, / und =), sind druckbares ASCII. Deshalb kommt Base64 durch Systeme, die nur 7-Bit-Text verarbeiten.
Lassen sich Steuerzeichen wie Tabs und Zeilenumbrüche kodieren?
Ja. Sie sind ebenfalls ASCII (Codes 0–31) und werden wie jedes andere Byte kodiert: a, Tab, b ergibt YQli.