Så använder du verktyget
- Skriv eller klistra in text i indatafältet.
- Alla kodningar uppdateras medan du skriver: binärt, oktalt, decimalt, hex, Base32-varianterna, Base36 till och med Base91, uuencode och xxencode.
- Jämför resultaten för att se vilket som är kortast eller som bara innehåller tecken som fungerar för dig.
- Klicka på Kopiera bredvid det resultat du behöver.
Alla kodningar från samma indata
Varje kodning på den här sidan gör om samma byte till en annan uppsättning tecken. Att se dem sida vid sida är det snabbaste sättet att välja kodning för ett projekt, att känna igen en sträng som du har hittat i en logg eller en konfigurationsfil, eller att lära dig hur formaten skiljer sig åt. Texten kodas som UTF-8-byte, så en bokstav som å eller é räknas som två byte och ett kinesiskt tecken som tre. Allt körs i din webbläsare.
- Tal per byte. Binärt, oktalt och decimalt skriver varje byte för sig. Lätt att läsa, men långt.
- Bitgrupper. Hex, Base32 (med Base32hex, Crockford och z-base-32), Base64 och Base64URL ger varje tecken ett fast antal bitar, så utdatans längd beror bara på indatans längd.
- Stora tal. Base36, Base58 och Base62 behandlar hela indatan som ett enda stort heltal. Längden kan variera med ett tecken beroende på värdet, och inledande nollbyte behålls som inledande tecken.
- Block. Base45 gör om 2 byte till 3 tecken, Ascii85, Z85 och Base85 gör om 4 byte till 5, och Base91 packar 13 eller 14 bitar i varje teckenpar.
- Rader. uuencode och xxencode är äldre format från e-post och Usenet som skriver data i rader, där varje rad börjar med ett längdtecken.
Jämförelse av utdatastorlek
Så många tecken behöver varje kodning per byte indata, och så långt blir ett värde på 32 byte, till exempel en SHA-256-hash eller en publik Ed25519-nyckel:
| Kodning | Tecken per byte | 32 byte blir |
|---|---|---|
| Base16 (hex) | 2,0 | 64 |
| Base32 | 1,6 | 56 (52 utan utfyllnad) |
| Base36 | cirka 1,55 | 49 eller 50 |
| Base45 | 1,5 | 48 |
| Base58 | cirka 1,37 | 43 eller 44 |
| Base62 | cirka 1,34 | 42 eller 43 |
| Base64 | cirka 1,33 | 44 (43 utan utfyllnad) |
| Base85 | 1,25 | 40 |
| Base91 | cirka 1,23 | 39 eller 40 |
Att gå från hex till Base64 sparar en tredjedel av längden. Att gå vidare från Base64 till Base91 sparar bara ytterligare cirka 8 %.
Så väljer du kodning
Kortast utdata är inte alltid bäst. Ascii85 kan innehålla citattecken och omvända snedstreck, och Base91 kan innehålla dubbla citattecken, så båda kan behöva escapas i JSON, HTML eller skalkommandon. Tänk på var strängen ska användas:
- URL:er och filnamn: Base64URL, Base58 eller Base62.
- Uppläsning eller inmatning för hand: Crockford Base32 eller Base58, som utelämnar tecken som är lätta att förväxla.
- System som inte skiljer på versaler och gemener: hex, Base32 eller Base36.
- QR-koder: Base45, som bara använder tecknen i QR-kodens alfanumeriska läge.
- Kompakt text i PDF, Git eller ZeroMQ: Ascii85, Base85 eller Z85.
- Bästa möjliga kompatibilitet: Base64, som stöds av nästan alla språk och plattformar.
Vanliga frågor
Vilken kodning ger kortast utdata?
Av kodningarna på den här sidan är Base91 mest kompakt med cirka 1,23 tecken per byte, följd av Ascii85, Z85 och Base85 med 1,25. Base64 behöver cirka 1,33 men stöds betydligt bredare, och därför är den det vanliga standardvalet.
Varför varierar längden på resultaten från Base58 och Base62 för indata av samma storlek?
De konverterar hela indatan som ett enda stort tal, så längden beror på talets värde och inte bara på storleken. Varje inledande nollbyte lägger dessutom till ett inledande tecken. Hex, Base32 och Base64 ger alltid samma längd för samma antal byte.
Kan jag avkoda en sträng på den här sidan?
Varför är den binära utdatan så lång?
Binärt skriver 8 siffror för varje byte, plus avgränsare, så resultatet blir minst fyra gånger så långt som hex. Formatet är till för att granska enskilda bitar, inte för att lagra eller skicka data.
Skickas min text till en server?
Nej. Alla kodningar beräknas med JavaScript i din webbläsare, och texten lämnar aldrig din enhet.