Kodare och avkodare för Base91

Konvertera text, hexbyte eller filer till basE91 och tillbaka. basE91 packar binärdata i 91 utskrivbara ASCII-tecken och ger kortare utdata än Base64 eller Base85.

Körs helt i din webbläsare. Inget laddas upp.

Så använder du verktyget

  1. 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.
  2. Skriv eller klistra in indata, eller öppna en fil. Välj Hex under Indata som för råa byte.
  3. Resultatet uppdateras medan du skriver. Vid avkodning väljer du Text eller Hex under Utdata som.
  4. 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

KodningTeckenUtdatans storlek
Hex162 × indata
Base5858cirka 1,37 × indata
Base64641,33 × indata
Base85 / Ascii85851,25 × indata
basE9191cirka 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 base91 för Python.

Specifikation

Alfabet91 utskrivbara ASCII-tecken
UtdatastorlekCirka 123 %
UtfyllnadIngen
StandardbasE91 (Joachim Henke)
SkiftlägeskänsligJa

Exempel

Indata (UTF-8)Utdata
Hello, World!>OwJh>}AQ;r@@Y?F
Base64.isxD7gXm^?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?
Bokstäverna 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.