Så här använder du det
- Välj ”Text → bytes” för att koda eller ”Bytes → text” för att avkoda.
- Välj ett byteformat: binärt, hexadecimalt, decimalt eller oktalt.
- Skriv eller klistra in din indata. Resultatet och byteantalet uppdateras medan du skriver.
- Kopiera resultatet eller flytta det till indata för att kontrollera konverteringen fram och tillbaka.
Så fungerar det
Datorer lagrar text som byte. Det här verktyget använder UTF-8, kodningen som används av nästan alla webbplatser och moderna system. I UTF-8 tar de 128 ASCII-tecknen (engelska bokstäver, siffror och grundläggande skiljetecken) en byte vardera, så H blir 01001000 binärt och 48 hexadecimalt. Alla andra tecken tar två till fyra byte: é är 2 byte (C3 A9), € och ☕ är 3 byte och de flesta emoji är 4 byte. Därför kan byteantalet vara större än teckenantalet, och därför kan ett tecken bli flera grupper om 8 bitar.
Varje byte kan skrivas på fyra vanliga sätt: 8-siffrigt binärt (00000000–11111111), 2-siffrigt hexadecimalt (00–FF), decimalt (0–255) eller 3-siffrigt oktalt (000–377). När byte skrivs utan avgränsare fylls binära, hexadecimala och oktala värden ut till fast bredd, och decimala värden fylls ut till 3 siffror så att de kan delas upp igen entydigt.
Avkodningen tolererar formatering: mellanslag, radbrytningar, kommatecken och semikolon mellan byte ignoreras, liksom prefixen 0x och 0b samt \x-escape-sekvenser. Varje grupp kontrolleras: en siffra som inte är tillåten i det valda formatet, eller ett värde över 255, rapporteras med bytepositionen. Efter avkodningen kontrolleras att byten utgör giltig UTF-8, och du får veta om de inte är text.
Tecken som består av flera kodpunkter, till exempel flaggor eller emoji med hudtoner, räknas här som flera tecken, eftersom varje kodpunkt kodas separat.
Exempel
Det klassiska ”Hi” i binärt
H är ASCII 72 och i är 105, så ”Hi” blir 01001000 01101001 binärt, 48 69 hexadecimalt och 72 105 decimalt: 2 tecken, 2 byte, 16 bitar.
Varför ”Café” är 5 byte
C, a och f är en byte vardera, men é är två byte i UTF-8: 11000011 10101001 (C3 A9). Ordet har 4 tecken men tar 5 byte, vilket spelar roll för gränser för databaskolumner och protokollfält som mäts i byte.
Läsa en hexdump
En debugger visar 48 65 6c 6c 6f 2c 20 e4 b8 96 e7 95 8c. Klistra in det med ”Byte → text” och Hexadecimal för att få ”Hello, 世界”; varje kinesiskt tecken är 3 byte.
Vanliga frågor
Varför blir ett tecken 16, 24 eller 32 bitar?
I UTF-8 får endast ASCII-tecken plats i en byte (8 bitar). Bokstäver med accenter och de flesta andra alfabet använder 2 byte, kinesiska, japanska, koreanska och många symboler använder 3, och emoji använder 4. Varje byte visas som en egen grupp.
Är detta ASCII eller UTF-8?
UTF-8. För vanlig engelsk text blir resultatet identiskt med ASCII, eftersom UTF-8 är utformat för att vara kompatibelt med det. Tecken utanför ASCII skulle vara omöjliga att representera enbart med ASCII.
Varför får jag ett fel när jag avkodar binärt?
Varje byte får bestå av högst 8 binära siffror och får bara innehålla 0 och 1. Utan mellanslag måste det totala antalet siffror vara en multipel av 8. Felmeddelandet anger vilken byte som inte kunde läsas.
Vad betyder ”inte giltig UTF-8”?
Byten bildar inte giltiga UTF-8-sekvenser, till exempel en ensam byte över 127 eller en sekvens som avbryts i mitten. Datan kan komma från en fil med en annan teckenkodning, till exempel Windows-1252, eller så är det kanske inte text alls.
Integritet
Konverteringen körs i din webbläsare med dess inbyggda UTF-8-kodare och avkodare. Din text laddas inte upp, lagras inte och ingår inte i analyser.