Sådan bruger du værktøjet
- Vælg Kod for at omdanne tekst eller bytes til basE91, eller Afkod for at omdanne basE91 tilbage til data.
- Skriv eller indsæt dit input, eller åbn en fil. Sæt Input som til Hex for rå bytes.
- Resultatet opdateres, mens du skriver. Ved afkodning vælger du Tekst eller Hex under Output som.
- Kopiér resultatet, eller download det som en fil.
Hvad er basE91?
basE91 er en binær-til-tekst-kodning, der er udviklet af Joachim Henke. Den bruger 91 af de 95 printbare ASCII-tegn: alle undtagen mellemrum, apostrof ', bindestreg - og omvendt skråstreg \.
Den arbejder ikke med faste blokke af bytes. Koderen samler inputbits i en buffer og tager 13 af dem ad gangen. Hvis 13-bit-værdien er større end 88, skrives den som to tegn. Hvis den er 88 eller mindre, tages der også en 14. bit med, hvilket stadig kan lade sig gøre, fordi to base-91-tegn kan udtrykke 91 × 91 = 8281 forskellige værdier. Hver gruppe på 13 eller 14 bit bliver derfor til præcis 2 tegn.
Resultatet er en overhead på højst ca. 23 % og helt ned til ca. 14 % for data med lange sekvenser af nulbytes. Tilfældige eller komprimerede data ender tæt på den øvre grænse.
basE91 sammenlignet med andre kodninger
| Kodning | Tegn | Outputstørrelse |
|---|---|---|
| Hex | 16 | 2 × input |
| Base58 | 58 | ca. 1,37 × input |
| Base64 | 64 | 1,33 × input |
| Base85 / Ascii85 | 85 | 1,25 × input |
| basE91 | 91 | ca. 1,14 til 1,23 × input |
Skriv dine egne data i Alle kodninger for at sammenligne de faktiske outputlængder.
Det skal du være opmærksom på
- Escaping. Alfabetet indeholder det dobbelte anførselstegn
", som skal escapes i JSON og i de fleste strengliteraler, samt<,>og&, som skal escapes i HTML og XML. basE91 er ikke URL-sikker. - Afkod hele strengen. Fordi bits løber hen over grænserne mellem tegnene, kan et stykke, der er klippet ud af midten af en basE91-streng, ikke afkodes for sig selv.
- Understøttelse. basE91 er ikke en IETF-standard. Forfatteren udgiver referenceimplementeringer i C og andre sprog, og der findes porteringer til de fleste platforme, for eksempel pakken
base91til Python.
Specifikation
| Alfabet | 91 printbare ASCII-tegn |
|---|---|
| Outputstørrelse | Ca. 123 % |
| Udfyldning | Ingen |
| Standard | basE91 (Joachim Henke) |
| Skelner mellem store og små bogstaver | Ja |
Eksempler
| Input (UTF-8) | Output |
|---|---|
Hello, World! | >OwJh>}AQ;r@@Y?F |
Base64.is | xD7gXm^?t#5 |
你好 | I_5k7aPE |
Ofte stillede spørgsmål
Er basE91 mindre end Base64?
Ja. Base64 lægger altid 33 % til, mens basE91 højst lægger ca. 23 % til og mindre for data med mange nulbytes. For en fil på 1 MB sparer du omkring 100 KB.
Hvilke tegn bruger basE91?
A-Z og a-z, cifrene 0-9 og symbolerne !#$%&()*+,./:;<=>?@[]^_`{|}~". Mellemrum, apostrof, bindestreg og omvendt skråstreg bruges ikke.Hvorfor skrives det basE91?
Sådan staver forfatteren selv navnet. basE91 og Base91 betegner den samme kodning, og denne side følger den oprindelige algoritme.
Ødelægger blanktegn afkodningen?
Nej. Mellemrum og linjeskift er ikke en del af alfabetet, så dekoderen her ignorerer dem. Du kan indsætte ombrudt basE91-tekst direkte.