Tekst-naar-binair converter
Zet tekst om naar binair (8-bits UTF-8-bytes) en terug — beide vakken zijn live en tweerichtingsverkeer.
1.137 weergaven
Hoe het werkt
Tekst wordt niet teken voor teken omgezet naar binair — het wordt byte voor byte omgezet, nadat het eerst als UTF-8 is gecodeerd. Dat onderscheid is belangrijk, want één teken past niet altijd in één byte. Typ een ASCII-teken (de gewone Engelse letters, cijfers en leestekens, codepunten 0-127) en het past precies in één byte, dus A wordt één 8-bits groep: 01000001. De meeste niet-Engelse tekens hebben meer ruimte nodig. De Turkse hoofdletter met punt İ (Unicode U+0130) wordt in UTF-8 gecodeerd als twee bytes, niet één: 11000100 10110000 — twee aparte 8-bits groepen. Een emoji zoals 😀 (U+1F600) heeft vier bytes nodig: 11110000 10011111 10011000 10000000. Deze tool doorloopt precies deze pijplijn — tekst → UTF-8-bytes → één 8-bits binaire groep per byte, gescheiden door spaties — dus een woord met "İ", "ğ" of een emoji levert zichtbaar meer groepen op dan de naïeve aanname van één teken is één byte zou voorspellen.
Die extra bytes zijn niet willekeurig; ze volgen een vast bitpatroon dat elke UTF-8-bewuste decoder (inclusief deze tool, die de omzetting omgekeerd uitvoert) kan herkennen. Het eerste byte van een meerbyte-reeks begint met een reeks 1-bits gevolgd door een 0 die aangeeft uit hoeveel bytes het teken bestaat — 110xxxxx betekent "2 bytes in totaal", 1110xxxx betekent "3 bytes", 11110xxx betekent "4 bytes" — terwijl elke byte die daarna volgt, een vervolgbyte, altijd begint met het vaste voorvoegsel 10xxxxxx. Bij het lezen van 11000100 10110000 voor İ: de decoder ziet 110 (een 2-bytes leadbyte) gevolgd door een byte die begint met 10 (precies één vervolgbyte), bevestigt dat de reeks compleet is, en reconstrueert het enkele Unicode-codepunt U+0130 uit de resterende bits van beide bytes samen. Dit is ook waarom een verdwaald of beschadigd byte in het midden van een meerbyte-teken de decodering breekt — het voorvoegsel van de vervolgbyte moet kloppen, anders kan het teken niet worden samengesteld.
Wat u moet weten
Binair terug omzetten naar tekst keert dezelfde pijplijn om: 8-bits groepen worden op volgorde gelezen, opnieuw gegroepeerd tot complete UTF-8-bytereeksen door het voorvoegsel van elk leadbyte te controleren om te weten hoeveel vervolgbytes erbij horen, en vervolgens teruggedecodeerd naar tekens — zodat een correct gegenereerde binaire tekenreeks altijd exact teruggaat naar de originele tekst, inclusief Turkse tekens en emoji, geen benadering ervan. Dit werkt alleen omdat het binair hier specifiek UTF-8 is: binair geproduceerd door een andere codering (UTF-16, of een enkelbyte-Turkse codering zoals ISO-8859-9/Windows-1254) gebruikt andere bytetellingen en bitpatronen voor dezelfde tekens, en het hier plakken zal naar de verkeerde tekst decoderen of volledig mislukken — het is geen universele binair-naar-tekst-tool, het is specifiek een UTF-8-tool. Omdat de hele omzetting client-side in de browser plaatsvindt, wordt geen tekst of binair dat u typt ooit ergens naartoe verzonden.
Veelgestelde vragen
Waarom levert één teken soms meer dan 8 bits op?
Tekst wordt eerst gecodeerd als UTF-8. ASCII-tekens nemen 1 byte (8 bits) in, maar letters met accenten, Turkse tekens en emoji kunnen 2-4 bytes innemen — elke byte wordt getoond als een eigen 8-bits groep, dus één teken kan legitiem uitgroeien tot 16, 24 of 32 bits.
Waarom hebben Turkse tekens zoals İ, ğ en ş twee binaire groepen nodig in plaats van één?
Ze vallen buiten het 0-127 ASCII-bereik, dus UTF-8 codeert ze als 2-byte-reeksen: een leadbyte die begint met 110xxxxx, gevolgd door één vervolgbyte die begint met 10xxxxxx. İ is bijvoorbeeld 11000100 10110000 — twee groepen die één teken vertegenwoordigen.
Kan ik emoji omzetten, en hoeveel bits hebben ze nodig?
Ja. De meeste emoji staan hoog genoeg in Unicode om de volledige 4-byte UTF-8-vorm nodig te hebben: een leadbyte die begint met 11110xxx, gevolgd door drie vervolgbytes die elk beginnen met 10xxxxxx — in totaal 32 bits voor één emoji-teken.
Wat als mijn binaire invoer ongeldige groepen bevat?
Groepen moeten uit precies 8 tekens van 0'en en 1'en bestaan, gescheiden door spaties. Ongeldige of onvolledige groepen — en vervolgbytes die niet aansluiten op een geldige leadbyte — worden overgeslagen in plaats van de omzetting te laten mislukken.
Werkt dit met andere coderingen dan UTF-8?
Nee, en dat zou het ook niet moeten beweren. UTF-16 en oudere enkelbyte-coderingen (zoals ISO-8859-9 voor Turks) kennen andere bytetellingen en bitpatronen toe aan dezelfde tekens. Binair uit die coderingen zal hier niet correct decoderen — deze tool is specifiek een UTF-8-tekst-naar-binair-converter.
Vergelijkbare tools
Probleem melden
Tekst-naar-binair converter
Reacties
Nog geen reacties — schrijf de eerste!