Text-zu-Binär-Konverter

Übersetzt Text in Binärcode — seine UTF-8-Bytes, acht Ziffern je Byte — und Binärcode zurück in Text, mit Zeile und Spalte eines Zeichens, das nicht passt.

Eingabe
Ausgabe
01001000 01100001 01101100 01101100 01101111

Wie aus einem Text Einsen und Nullen werden

Ein Computer speichert Text als Bytes, und ein Byte besteht aus acht Bits, von denen jedes eine 0 oder eine 1 ist. Diese Seite zeigt Ihnen diese Bytes: Geben Sie einen Text ein, und jedes Byte erscheint als acht binäre Ziffern, mit einem Leerzeichen zwischen einem Byte und dem nächsten, oder fügen Sie Binärcode ein und lesen Sie den Text, den er ergibt. Die Seite arbeitet in beide Richtungen, läuft vollständig in Ihrem Browser und öffnet mit einem Beispiel, das bereits umgewandelt ist.

Aus welchen Bytes ein Text besteht, hängt von seiner Codierung ab, und hier ist das UTF-8, sofern Sie nichts anderes wählen, denn UTF-8 ist das, was Webseiten, URLs und die meisten Textdateien enthalten. Die Auswahl „Einheit“ legt fest, wofür eine Gruppe von Ziffern steht: für ein Byte von UTF-8, für ein Byte von UTF-16 in einer der beiden Bytereihenfolgen oder für einen Codepunkt. Die Einheit, die Sie wählen, gilt in beiden Richtungen, und die Seite ändert sie nie an Ihrer Stelle. Sieht das, was Sie einfügen, nach einer anderen Einheit aus, sagt die Seite das und setzt eine Schaltfläche neben den Hinweis, und nichts wechselt, bevor Sie sie drücken.

Warum jedes Byte mit acht Ziffern geschrieben wird

Ein Bit ist eine binäre Ziffer, und ein Byte sind acht davon. Acht Bits lassen sich auf 256 Arten belegen, also fasst ein Byte eine ganze Zahl von 0, das ist 00000000, bis 255, das ist 11111111. In Bytes werden Dateien, Speicher und Netzwerkverkehr gezählt, und auf jeder Maschine, der Sie wahrscheinlich begegnen, hat ein Byte acht Bits; Netzwerkstandards nennen es ein Oktett, ein Wort, das nur acht bedeuten kann.

Die ersten 128 dieser Werte sind ASCII, der Code für die englischen Buchstaben, die Ziffern und die gängigen Satzzeichen, und 128 Werte brauchen nur sieben Bits. Deshalb beginnt das Byte jedes ASCII-Zeichens mit einer 0, und UTF-8 reserviert die Bytes, die mit einer 1 beginnen, für alles, was ASCII nicht hat. Die Seite schreibt jedes Byte mit allen acht Ziffern, führende Nullen eingeschlossen, auch aus einem praktischen Grund: Bytes einer festen Breite lassen sich ohne Leerzeichen dazwischen zurücklesen, acht Ziffern auf einmal.

Der Buchstabe H, Bit für Bit

Nehmen Sie ein großes H. ASCII gibt ihm die Nummer 72, und 72 als Byte ist 01001000. Von links gelesen, sind die acht Stellen 128, 64, 32, 16, 8, 4, 2 und 1 wert, und jede 1 zählt den Wert ihrer Stelle: Dieses Byte hat seine Einsen an den Stellen, die 64 und 8 wert sind, und 64 und 8 ergeben 72. Ein kleines i ist 105, also 64, 32, 8 und 1, und so wird Hi zu 01001000 01101001.

Groß- und Kleinschreibung ist ein Bit. Ein kleines h ist 01101000, das Byte von H, bei dem die Stelle mit dem Wert 32 eingeschaltet ist, und dasselbe gilt für jeden Buchstaben des englischen Alphabets, denn ASCII nummeriert jeden Kleinbuchstaben genau 32 über seinem Großbuchstaben.

Die Auswahl „Basis“ schreibt dasselbe Byte auf andere Weise, ohne es zu verändern. Ist „Dezimal“ gewählt, ist H 72, bei „Hexadezimal“ 48 und bei „Oktal“ 110. Es ist ein Byte, auf vier Arten geschrieben, und beim Zurücklesen werden die Ziffern in der Basis gelesen, die Sie gewählt haben. Der Text-zu-Hexadezimal-Konverter öffnet mit „Hexadezimal“, wo ein Byte zwei Ziffern statt acht braucht.

Warum ein Buchstabe jenseits von ASCII zwei Bytes oder mehr braucht

ASCII endet bei 127. Ein Buchstabe mit Akzent, ein Buchstabe des kyrillischen, hebräischen oder arabischen Alphabets, ein japanisches oder koreanisches Schriftzeichen und ein Emoji haben alle Codepunkte jenseits davon, und UTF-8 schreibt ein Zeichen nur dann in einem einzigen Byte, wenn es ASCII ist, und reserviert die Bytes, die mit einer 1 beginnen, für alles andere. Deshalb braucht jedes davon zwei, drei oder vier Bytes, und im Binärcode können Sie zusehen, wie das geschieht, denn die ersten Bits jedes Bytes sagen, welcher Teil eines Zeichens das Byte ist:

  • 0xxxxxxx ist ein Zeichen in einem Byte: ASCII, mit seinen sieben Bits an den Stellen der x. H ist 01001000.
  • 110xxxxx 10xxxxxx ist ein Zeichen in zwei Bytes, für Codepunkte bis 2.047, was die Buchstaben mit Akzent der europäischen Sprachen und das kyrillische, hebräische und arabische Alphabet abdeckt. é ist 11000011 10101001 und א ist 11010111 10010000.
  • 1110xxxx 10xxxxxx 10xxxxxx sind drei Bytes, für Codepunkte bis 65.535, wo die japanischen Kana und die gängigen Kanji, das koreanische Hangul und das Eurozeichen stehen. € ist 11100010 10000010 10101100.
  • 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx sind vier Bytes, für jeden Codepunkt jenseits davon, und dort stehen die meisten Emojis.

Ein erstes Byte, das mit zwei, drei oder vier Einsen beginnt, sagt, wie viele Bytes sein Zeichen hat, und jedes Byte, das ein Zeichen fortsetzt, beginnt mit 10, sodass kein Byte aus der Mitte eines Zeichens für den Anfang eines Zeichens gehalten werden kann. Entfernen Sie aus den beiden Bytes von א die Kennbits, die 110 und die 10, und die elf übrigen Bits, 10111010000, sind sein Codepunkt, U+05D0, binär geschrieben. Ist „Hexadezimal“ gewählt, lauten dieselben zwei Bytes D7 90, und das Muster geht in den Ziffern auf; im Binärcode steht es in den ersten Bits jedes Bytes.

Vier Bytes für ein Emoji

😀 ist U+1F600, weit jenseits von 65.535, also schreibt UTF-8 es in vier Bytes: 11110000 10011111 10011000 10000000. Das erste beginnt mit vier Einsen und eröffnet damit ein Zeichen aus vier Bytes, und jedes der drei folgenden beginnt mit 10. Sein Codepunkt braucht siebzehn binäre Ziffern, 11111011000000000, eine mehr als die sechzehn, für die ein Zeichen aus drei Bytes Platz hat; das Muster für vier Bytes hat Platz für einundzwanzig.

Ein Emoji, das wie ein Symbol aussieht, kann aus mehreren Codepunkten bestehen, und jeder davon wird vollständig ausgeschrieben. Eine winkende Hand mit einer Hautfarbe sind zwei Codepunkte und acht Bytes. Eine vierköpfige Familie sind sieben Codepunkte, vier Personen und die drei unsichtbaren Verbinder zwischen ihnen, und fünfundzwanzig Bytes. Fügen Sie eines in die Seite ein und zählen Sie die Gruppen.

Warum ein anderer Konverter für א elf Ziffern ausgibt

Ein Konverter, der für א elf Ziffern ausgibt, 10111010000, hat nicht die Bytes dieses Buchstabens geschrieben. Er hat die Nummer, die Unicode dem Buchstaben gibt, seinen Codepunkt U+05D0, also 1488, als eine Binärzahl geschrieben, und diese Zahl ist kein Byte von irgendetwas, das eine Datei oder ein Netzwerk enthält. Eine so geschriebene Nachricht kann nur ein Werkzeug zurücklesen, das dieselbe Annahme trifft.

Die beiden Antworten liegen näher beieinander, als es aussieht. Die elf Ziffern sind genau die Bits, die UTF-8 auf die zwei Bytes verteilt, sobald die Kennbits entfernt sind, wie oben gezeigt, also schreiben beide Konverter dieselbe Zahl, und nur einer von ihnen schreibt die Bytes, in denen sie gespeichert ist. Bei einem ASCII-Zeichen stimmen die beiden bis auf führende Nullen überein, weshalb sie für schlichtes Englisch dieselbe Antwort geben und bei fast allem anderen auseinandergehen.

Diese Seite gibt jene Antwort ebenfalls, als eine Einheit, die Sie wählen, und nicht als eine, von der die Seite ausgeht: Wählen Sie „Codepunkte“, und א wird als 10111010000 geschrieben und auf dieselbe Weise zurückgelesen. Fügen Sie, während UTF-8 gewählt ist, eine Nachricht ein, die ein Codepunkt-Konverter auf Hebräisch, Russisch oder Japanisch geschrieben hat, und die Gruppen sind zu breit für Bytes; die Seite rät nicht, sondern sagt, dass die Gruppen wie Codepunkte aussehen, und bietet „Zu Codepunkten wechseln“ an. Ein Konverter, der eine UTF-16-Codeeinheit nach der anderen verarbeitet, wie es charCodeAt von JavaScript tut, schreibt 😀 als zwei sechzehnstellige Zahlen, die Hälften des Surrogatpaars, als das UTF-16 es speichert, und „Codepunkte“ liest das Paar als das eine Emoji zurück.

Binärcode als Text zurücklesen

Um Binärcode wieder in Text zu verwandeln, stellen Sie die Richtung auf „Binär zu Text“ und geben die Ziffern ein oder fügen sie ein, und die Ausgabe ist der Text, den sie ergeben. „Als Eingabe verwenden“ erledigt das mit einem Klick, indem es die Ausgabe in die Eingabe verschiebt und die Richtung umkehrt, und so prüfen Sie ein Hin und Zurück am schnellsten. All das wird als dieselben Bytes gelesen:

  • Leerraum jeder Art, Zeilenumbrüche eingeschlossen, und Kommas, Semikolons, Doppelpunkte oder Bindestriche zwischen den Bytes.
  • Gar keine Trennzeichen, überall dort, wo sich die Ziffern in ganze Bytes zu acht teilen lassen, so wie „Kompakt“ unter „Stil“ sie schreibt.
  • Gruppen aus sieben Ziffern oder weniger, so wie ein ASCII-Zeichen ohne seine führende Null aussieht: 1001000 1101001 wird als Hi gelesen.
  • Ein 0b vor einem Byte, groß oder klein geschrieben, und ein Paar eckiger, geschweifter oder runder Klammern oder Anführungszeichen um das Ganze.

Die Seite rät dabei aber nicht. Jedes andere Zeichen oder eine Gruppe, die länger als acht Ziffern ist und sich nicht in ganze Bytes teilen lässt, hält das Lesen an, und die Seite sagt das mit der Zeile und Spalte, an der das geschieht, und zeigt darunter Ihre eigene Zeile mit der markierten Stelle. In einer langen Nachricht ist das der Unterschied zwischen einem Tippfehler, den Sie finden können, und einem Text, der stillschweigend falsch ist.

Binärcode, der sich einwandfrei als Bytes lesen lässt, aber kein UTF-8-Text ist, wird angezeigt statt abgelehnt. Eine Nachricht, die mitten in einem Zeichen abgeschnitten ist, kommt mit der beschädigten Folge zurück, angezeigt als U+FFFD, das Ersatzzeichen, und ein Hinweis unter der Ausgabe sagt, wie viele solcher Folgen es gibt und wo die erste beginnt: das Byte, die Ziffern, die Sie dafür eingefügt haben, und deren Zeile und Spalte.

Binärcode für einen Text und Binärcode für eine Zahl

Geben Sie hier 5 ein, und die Antwort ist 00110101, nicht 101. Die Seite schreibt das Zeichen 5, dem ASCII die Nummer 53 gibt, denn die Ziffern eines Textes sind die Bytes, in denen er gespeichert ist; 101 ist die Zahl fünf, binär geschrieben, und das ist eine andere Frage mit einer anderen Antwort. Dasselbe gilt für 255: Hier eingegeben, sind das drei Zeichen und drei Bytes, während die Zahl 255 das einzelne Byte 11111111 ist.

Wenn Sie eine Zahl statt eines Textes haben, etwa eine Anzahl, ein Register oder einen Wert, den ein Programm ausgegeben hat, bringen Sie sie zum Zahlensystem-Umrechner: Er rechnet den Wert selbst zwischen binär, oktal, dezimal, hexadezimal und anderen Basen um, und bei fester Breite schreibt er einen negativen Wert im Zweierkomplement und zeigt jedes Bit als eines, das Sie zum Kippen anklicken können. Diese Seite geht von den Zeichen eines Textes aus; jene geht von einer Zahl aus.

Häufig gestellte Fragen

Wie schreibe ich meinen Namen in Binärcode?
Geben Sie ihn in das Eingabefeld ein, und er erscheint Byte für Byte, acht Ziffern je Byte mit einem Leerzeichen zwischen den Bytes. Ada zum Beispiel ist 01000001 01100100 01100001. Ein Buchstabe mit Akzent oder einer aus einem anderen Alphabet braucht zwei Bytes oder mehr, und ein Leerzeichen zwischen zwei Namen ist ein eigenes Byte, 00100000.
Wie viele Bits braucht ein Zeichen?
In UTF-8 acht für einen Buchstaben, eine Ziffer oder ein Satzzeichen aus ASCII, sechzehn für einen Buchstaben mit Akzent oder einen kyrillischen, hebräischen oder arabischen, vierundzwanzig für japanische Kana, die gängigen Kanji, koreanisches Hangul und das Eurozeichen und zweiunddreißig für die meisten Emojis. Was Sie als ein Symbol sehen, kann darunter aus mehreren Codepunkten bestehen, und jeder davon braucht eigene Bits.
Kann ich Binärcode ohne Leerzeichen zwischen den Bytes einfügen?
Ja, überall dort, wo sich die Ziffern in ganze Bytes teilen lassen: Sechzehn Ziffern sind zwei Bytes und vierundzwanzig sind drei. Eine Gruppe mit mehr als acht Ziffern, deren Länge kein Vielfaches von acht ist, lässt sich nicht teilen, ohne zu raten, welches Byte eine Ziffer verloren hat, deshalb wird sie mit ihrer Zeile und Spalte abgelehnt, statt falsch gelesen zu werden.
Warum kommt mein Text mit einem Fragezeichen in einer Raute zurück?
Dieses Symbol ist U+FFFD, das Ersatzzeichen, das die Seite überall dort einsetzt, wo die Bytes kein UTF-8-Text sind: Meistens ist ein Byte verloren gegangen und ein Zeichen abgeschnitten worden, oder die Bytes waren überhaupt nie UTF-8. Statt die ganze Nachricht abzulehnen, zeigt die Seite jede beschädigte Folge so an und sagt unter der Ausgabe, wie viele es sind und wo die erste beginnt, damit Sie den Schaden in dem finden, was Sie eingefügt haben.
Warum gibt mir ein anderer Konverter anderen Binärcode?
Höchstwahrscheinlich schreibt er den Codepunkt jedes Zeichens statt dessen Bytes. Die beiden stimmen bei ASCII bis auf führende Nullen überein und weichen jenseits davon ab: א ist hier 11010111 10010000 und dort 10111010000. Wählen Sie „Codepunkte“, um die Antwort jenes Konverters zu bekommen oder eine Nachricht zurückzulesen, die er geschrieben hat.
Warum ist 5 hier nicht 101?
Weil eine 5, die Sie in das Feld eingeben, ein Zeichen ist und die Seite das Byte schreibt, in dem es gespeichert ist: 00110101. Die Zahl fünf ist binär 101; für eine Zahl statt eines Textes verwenden Sie den Zahlensystem-Umrechner.
Wird mein Text an einen Server gesendet?
Nein. Beide Richtungen laufen vollständig in Ihrem Browser, sodass der Text, den Sie eingeben, und der Binärcode, den Sie einfügen, nie Ihr Gerät verlassen.

Verwandte Werkzeuge

  • Zahlensystem-Umrechner

    Geben Sie hier 5 ein, und Sie erhalten das Byte, in dem das Zeichen 5 gespeichert ist: 00110101. Jene Seite ist für eine Zahl statt für einen Text da: Dort wird der Wert selbst umgerechnet, und fünf wird zu 101.

  • Text-zu-Hexadezimal-Konverter

    Hexadezimal braucht für ein Byte zwei Ziffern, wo Binär acht braucht — Hi ist hier 01001000 01101001 und dort 48 69 —, und so zeigt ein Hexdump Bytes an, und so schreibt Code sie. Hexadezimal gibt es auch auf dieser Seite; jene Seite öffnet damit.

  • Base64

    Codiert und decodiert Base64 – volle UTF-8-Unterstützung.

  • URL-Encoder / -Decoder

    Prozentcodierung für einen Wert oder eine ganze URL — und zurück.