Sådan bruger du det
- Vælg “Tekst → bytes” for at indkode eller “Bytes → tekst” for at afkode.
- Vælg et byteformat: binær, hexadecimal, decimal eller oktal.
- Skriv eller indsæt dit input. Resultatet og byteantallet opdateres, mens du skriver.
- Kopier resultatet, eller sæt det tilbage i inputfeltet for at tjekke tur/retur.
Sådan fungerer det
Computere gemmer tekst som bytes. Dette værktøj bruger UTF-8, den kodning, som næsten alle websites og moderne systemer bruger. I UTF-8 fylder de 128 ASCII-tegn (engelske bogstaver, tal og grundlæggende tegnsætning) én byte hver, så H er 01001000 i binær og 48 i hexadecimal. Alle andre tegn fylder to til fire bytes: é er 2 bytes (C3 A9), € og ☕ er 3 bytes, og de fleste emoji er 4 bytes. Det er grunden til, at antallet af bytes kan være større end antallet af tegn, og at ét tegn kan blive til flere grupper af 8 bits.
Hver byte kan skrives på fire almindelige måder: 8-cifret binær (00000000–11111111), 2-cifret hexadecimal (00–FF), decimal (0–255) eller 3-cifret octal (000–377). Når bytes skrives uden separatorer, udfyldes binære, hex- og oktale værdier til en fast bredde, og decimalværdier udfyldes til 3 cifre, så de igen kan opdeles entydigt.
Afkodning tolererer formatering: mellemrum, linjeskift, kommaer og semikolon mellem bytes ignoreres, ligesom 0x- og 0b-præfikser og \x-escapes. Hver gruppe kontrolleres; et ciffer, der ikke er tilladt i det valgte format, eller en værdi over 255, rapporteres med bytens position. Efter afkodning kontrolleres bytesene for gyldig UTF-8, og du får besked, hvis de ikke er tekst.
Tegn, der består af flere code points, f.eks. flag eller emoji med hudtoner, tælles her som flere tegn, fordi hvert code point kodes separat.
Eksempler
Den klassiske “Hi” i binær
H er ASCII 72, og i er 105, så “Hi” bliver til 01001000 01101001 i binær, 48 69 i hex og 72 105 i decimal: 2 tegn, 2 bytes, 16 bits.
Hvorfor “Café” er 5 bytes
C, a og f er hver én byte, men é er to bytes i UTF-8: 11000011 10101001 (C3 A9). Ordet har 4 tegn, men fylder 5 bytes, hvilket har betydning for databasekolonnegrænser og protokolfelter, der måles i bytes.
At læse et hex-dump
En debugger viser 48 65 6c 6c 6f 2c 20 e4 b8 96 e7 95 8c. Indsæt den med “Bytes → tekst” og Hexadecimal for at få “Hello, 世界”; hvert kinesiske tegn er 3 bytes.
Ofte stillede spørgsmål
Hvorfor bliver ét tegn til 16, 24 eller 32 bits?
I UTF-8 er det kun ASCII-tegn, der kan være i én byte (8 bits). Bogstaver med accenter og de fleste andre alfabeter bruger 2 bytes, kinesisk, japansk, koreansk og mange symboler bruger 3, og emoji bruger 4. Hver byte vises som sin egen gruppe.
Er dette ASCII eller UTF-8?
UTF-8. For almindelig engelsk tekst er resultatet identisk med ASCII, fordi UTF-8 er designet til at være kompatibelt med det. Tegn ud over ASCII ville være umulige at repræsentere i ASCII alene.
Hvorfor får jeg en fejl, når jeg afkoder binært?
Hver byte skal højst bestå af 8 binære cifre og må kun indeholde 0 og 1. Uden mellemrum skal det samlede antal cifre være et multiplum af 8. Fejlmeddelelsen angiver den byte, der ikke kunne læses.
Hvad betyder “ikke gyldig UTF-8”?
Bytene danner ikke gyldige UTF-8-sekvenser, f.eks. en enkelt byte over 127 eller en sekvens, der er afbrudt midt i. Dataene kan stamme fra en fil i en anden kodning, f.eks. Windows-1252, eller de er måske slet ikke tekst.
Privatliv
Konverteringen kører i din browser og bruger dens indbyggede UTF-8-indkoder og -afkoder. Din tekst uploades ikke, gemmes ikke og indgår ikke i analyser.