Så använder du verktyget
- Välj Koda för att göra om text eller byte till basE91, eller Avkoda för att göra om basE91 till data igen.
- Skriv eller klistra in indata, eller öppna en fil. Välj Hex under Indata som för råa byte.
- Resultatet uppdateras medan du skriver. Vid avkodning väljer du Text eller Hex under Utdata som.
- Kopiera resultatet eller ladda ned det som en fil.
Vad är basE91?
basE91 är en kodning av binärdata till text som har utformats av Joachim Henke. Den använder 91 av de 95 utskrivbara ASCII-tecknen: alla utom mellanslaget, apostrofen ', bindestrecket - och bakstrecket \.
Den arbetar inte med fasta block av byte. Kodaren samlar indatans bitar i en buffert och tar 13 bitar åt gången. Om 13-bitarsvärdet är större än 88 skrivs det som två tecken. Om det är 88 eller mindre tas även en fjortonde bit med, vilket ändå får plats eftersom två tecken i bas 91 kan uttrycka 91 × 91 = 8281 olika värden. Varje grupp om 13 eller 14 bitar blir därför exakt 2 tecken.
Resultatet blir högst cirka 23 % större än indatan, och bara cirka 14 % större för data med långa följder av nollbyte. Slumpmässig eller komprimerad data hamnar nära den övre gränsen.
Så står sig basE91 i jämförelse
| Kodning | Tecken | Utdatans storlek |
|---|---|---|
| Hex | 16 | 2 × indata |
| Base58 | 58 | cirka 1,37 × indata |
| Base64 | 64 | 1,33 × indata |
| Base85 / Ascii85 | 85 | 1,25 × indata |
| basE91 | 91 | cirka 1,14 till 1,23 × indata |
Vill du jämföra de verkliga utdatalängderna för din egen data skriver du in den i Alla kodningar.
Att tänka på
- Escape-tecken. Alfabetet innehåller det dubbla citattecknet
", som måste escapas i JSON och i de flesta strängliteraler, samt<,>och&, som måste escapas i HTML och XML. basE91 är inte URL-säker. - Avkoda hela strängen. Eftersom bitarna löper över gränserna mellan tecknen kan ett stycke som klippts ut ur mitten av en basE91-sträng inte avkodas på egen hand.
- Stöd. basE91 är ingen IETF-standard. Upphovsmannen publicerar referensimplementationer i C och andra språk, och det finns portningar för de flesta plattformar, till exempel paketet
base91för Python.
Specifikation
| Alfabet | 91 utskrivbara ASCII-tecken |
|---|---|
| Utdatastorlek | Cirka 123 % |
| Utfyllnad | Ingen |
| Standard | basE91 (Joachim Henke) |
| Skiftlägeskänslig | Ja |
Exempel
| Indata (UTF-8) | Utdata |
|---|---|
Hello, World! | >OwJh>}AQ;r@@Y?F |
Base64.is | xD7gXm^?t#5 |
你好 | I_5k7aPE |
Vanliga frågor
Är basE91 mindre än Base64?
Ja. Base64 lägger alltid till 33 %, medan basE91 lägger till högst cirka 23 %, och mindre för data med många nollbyte. För en fil på 1 MB sparar du ungefär 100 kB.
Vilka tecken använder basE91?
A-Z och a-z, siffrorna 0-9 och symbolerna !#$%&()*+,./:;<=>?@[]^_`{|}~". Mellanslag, apostrof, bindestreck och bakstreck används inte.Varför skrivs det basE91?
Det är så upphovsmannen stavar namnet. basE91 och Base91 syftar på samma kodning, och den här sidan följer den ursprungliga algoritmen.
Förstör blanktecken avkodningen?
Nej. Mellanslag och radbrytningar ingår inte i alfabetet, så avkodaren här ignorerar dem. Du kan klistra in radbruten basE91-text direkt.