Slik bruker du verktøyet
- Velg Kode for å gjøre tekst eller byte om til basE91, eller Dekode for å gjøre basE91 om til data igjen.
- Skriv eller lim inn inndataene, eller åpne en fil. Bytt inndata til Hex for rå byte.
- Resultatet oppdateres mens du skriver. Ved dekoding velger du Tekst eller Hex som utdata.
- Kopier resultatet eller last det ned som en fil.
Hva er basE91?
basE91 er en binær-til-tekst-koding utviklet av Joachim Henke. Den bruker 91 av de 95 utskrivbare ASCII-tegnene: alle unntatt mellomrom, apostrof ', bindestrek - og omvendt skråstrek \.
Den arbeider ikke med faste blokker av byte. Koderen samler inndatabiter i en buffer og tar 13 av dem om gangen. Hvis 13-bitersverdien er større enn 88, skrives den som to tegn. Hvis den er 88 eller mindre, tas også en 14. bit med, noe som fortsatt går fordi to base-91-tegn kan uttrykke 91 × 91 = 8281 ulike verdier. Hver gruppe på 13 eller 14 bit blir dermed til nøyaktig 2 tegn.
Resultatet er en størrelsesøkning på høyst rundt 23 %, og ned mot omtrent 14 % for data med lange serier av nullbyte. Tilfeldige eller komprimerte data havner nær den øvre grensen.
Slik står basE91 seg mot andre kodinger
| Koding | Tegn | Størrelse på utdata |
|---|---|---|
| Hex | 16 | 2 × inndata |
| Base58 | 58 | omtrent 1,37 × inndata |
| Base64 | 64 | 1,33 × inndata |
| Base85 / Ascii85 | 85 | 1,25 × inndata |
| basE91 | 91 | omtrent 1,14 til 1,23 × inndata |
For å sammenligne faktiske utdatalengder for dine egne data kan du skrive dem inn i Alle kodinger.
Ting å være oppmerksom på
- Escaping. Alfabetet inneholder doble anførselstegn
", som må escapes i JSON og i de fleste strengliteraler, og<,>og&, som må escapes i HTML og XML. basE91 er ikke URL-sikker. - Dekod hele strengen. Fordi bitene går på tvers av tegngrensene, kan et stykke som er klippet ut fra midten av en basE91-streng, ikke dekodes alene.
- Støtte. basE91 er ikke en IETF-standard. Forfatteren publiserer referanseimplementasjoner i C og andre språk, og det finnes porteringer for de fleste plattformer, for eksempel pakken
base91for Python.
Spesifikasjon
| Alfabet | 91 utskrivbare ASCII-tegn |
|---|---|
| Utdatastørrelse | Omtrent 123 % |
| Utfylling | Ingen |
| Standard | basE91 (Joachim Henke) |
| Skiller store og små bokstaver | Ja |
Eksempler
| Inndata (UTF-8) | Utdata |
|---|---|
Hello, World! | >OwJh>}AQ;r@@Y?F |
Base64.is | xD7gXm^?t#5 |
你好 | I_5k7aPE |
Ofte stilte spørsmål
Er basE91 mindre enn Base64?
Ja. Base64 legger alltid til 33 %, mens basE91 legger til høyst rundt 23 %, og mindre for data med mange nullbyte. For en fil på 1 MB sparer du dermed omtrent 100 KB.
Hvilke tegn bruker basE91?
A-Z og a-z, sifrene 0-9 og symbolene !#$%&()*+,./:;<=>?@[]^_`{|}~". Mellomrom, apostrof, bindestrek og omvendt skråstrek brukes ikke.Hvorfor skrives navnet basE91?
Det er slik forfatteren staver navnet. basE91 og Base91 viser til samme koding, og denne siden følger den opprinnelige algoritmen.
Ødelegger blanktegn dekodingen?
Nei. Mellomrom og linjeskift er ikke en del av alfabetet, så dekoderen her ignorerer dem. Du kan lime inn basE91-tekst med linjebryting direkte.