Wszystkie kodowania naraz

Wpisz lub wklej tekst tylko raz i zobacz go obok siebie w zapisie binarnym, szesnastkowym, w rodzinie Base32, w Base58, Base64, w rodzinie Base85, w Base91 i innych. Każdy wynik ma własny przycisk „Kopiuj”.

Działa w całości w przeglądarce. Nic nie jest wysyłane.

Jak używać

  1. Wpisz lub wklej tekst w polu „Wejście”.
  2. Wszystkie kodowania aktualizują się na bieżąco podczas pisania: binarny, ósemkowy, dziesiętny, hex, warianty Base32, kodowania od Base36 do Base91 oraz uuencode i xxencode.
  3. Porównaj wyniki, aby sprawdzić, który jest najkrótszy albo zawiera wyłącznie dopuszczalne w danym zastosowaniu znaki.
  4. Kliknij „Kopiuj” obok potrzebnego wyniku.

Wszystkie kodowania z jednych danych wejściowych

Każde kodowanie na tej stronie zamienia te same bajty na inny zestaw znaków. Zestawienie ich obok siebie to najszybszy sposób, aby wybrać kodowanie do projektu, rozpoznać ciąg znaleziony w logu lub pliku konfiguracyjnym albo poznać różnice między formatami. Tekst jest kodowany jako bajty UTF-8, więc litera ze znakiem diakrytycznym, np. ą lub ł, zajmuje dwa bajty, a znak chiński trzy. Wszystko działa w przeglądarce.

  • Liczba dla każdego bajtu. Zapis binarny, ósemkowy i dziesiętny przedstawia każdy bajt osobno. Łatwo go odczytać, ale jest długi.
  • Grupy bitów. Hex, Base32 (wraz z Base32hex, Crockford i z-base-32), Base64 i Base64URL przypisują każdemu znakowi stałą liczbę bitów, więc długość wyniku zależy wyłącznie od długości danych wejściowych.
  • Duże liczby. Base36, Base58 i Base62 traktują całe wejście jako jedną dużą liczbę całkowitą. W zależności od wartości długość może się różnić o jeden znak, a wiodące bajty zerowe są zachowywane jako znaki na początku wyniku.
  • Bloki. Base45 zamienia 2 bajty na 3 znaki, Ascii85, Z85 i Base85 zamieniają 4 bajty na 5 znaków, a Base91 mieści 13 lub 14 bitów w każdej parze znaków.
  • Wiersze. uuencode i xxencode to starsze formaty poczty elektronicznej i Usenetu, które zapisują dane w wierszach, a każdy wiersz zaczyna się znakiem określającym jego długość.

Porównanie rozmiaru wyniku

Ile znaków potrzebuje każde kodowanie na jeden bajt wejściowy i jak długa staje się 32-bajtowa wartość, np. skrót SHA-256 lub klucz publiczny Ed25519:

KodowanieZnaki na bajtDługość dla 32 bajtów
Base16 (hex)2,064
Base321,656 (52 bez dopełnienia)
Base36ok. 1,5549 lub 50
Base451,548
Base58ok. 1,3743 lub 44
Base62ok. 1,3442 lub 43
Base64ok. 1,3344 (43 bez dopełnienia)
Base851,2540
Base91ok. 1,2339 lub 40

Przejście z hex na Base64 skraca zapis o jedną trzecią. Dalsze przejście z Base64 na Base91 daje już tylko ok. 8% oszczędności.

Które kodowanie wybrać

Najkrótszy wynik nie zawsze jest najlepszy. Ascii85 może zawierać cudzysłowy i ukośniki odwrotne, a Base91 cudzysłowy podwójne, więc w JSON, HTML lub poleceniach powłoki oba mogą wymagać użycia sekwencji ucieczki. Warto zastanowić się, gdzie ciąg ma trafić:

  • Adresy URL i nazwy plików: Base64URL, Base58 lub Base62.
  • Czytanie na głos lub ręczne wpisywanie: Crockford Base32 lub Base58, które pomijają podobnie wyglądające znaki.
  • Systemy nierozróżniające wielkości liter: hex, Base32 lub Base36.
  • Kody QR: Base45, który używa wyłącznie znaków trybu alfanumerycznego QR.
  • Zwarty tekst w PDF, Git lub ZeroMQ: Ascii85, Base85 lub Z85.
  • Maksymalna zgodność: Base64, obsługiwany przez niemal każdy język programowania i platformę.

Najczęściej zadawane pytania

Które kodowanie daje najkrótszy wynik?

Spośród kodowań na tej stronie najbardziej zwarty jest Base91 (ok. 1,23 znaku na bajt), a za nim Ascii85, Z85 i Base85 (1,25). Base64 potrzebuje ok. 1,33 znaku, ale jest obsługiwany znacznie szerzej, dlatego zwykle jest wyborem domyślnym.

Dlaczego wyniki Base58 i Base62 mają różną długość dla danych tego samego rozmiaru?

Oba kodowania przeliczają całe wejście jako jedną dużą liczbę, więc długość wyniku zależy od jej wartości, a nie tylko od rozmiaru. Każdy wiodący bajt zerowy dodaje też jeden znak na początku. Hex, Base32 i Base64 dla tej samej liczby bajtów zawsze dają wynik tej samej długości.

Czy na tej stronie można dekodować ciągi?
Ta strona tylko koduje. Aby sprawdzić, czym jest nieznany ciąg, wklej go do wykrywacza kodowania. Aby zamienić ciąg z jednego kodowania na inne, użyj konwertera kodowań.
Dlaczego wynik binarny jest tak długi?

Zapis binarny wymaga 8 cyfr na każdy bajt oraz separatorów, więc jest co najmniej cztery razy dłuższy niż hex. Służy do oglądania poszczególnych bitów, a nie do przechowywania lub przesyłania danych.

Czy mój tekst jest wysyłany na serwer?

Nie. Wszystkie kodowania są obliczane przez JavaScript w przeglądarce, a tekst nigdy nie opuszcza urządzenia.