Przejdź do treści
100% lokalnie

Kodowanie długości serii

Skompresuj powtórzenia na pary liczba-znak i zdekoduj je z powrotem.

Wejście
Wynik

Kodowanie długości serii

Kodowanie długości serii zastępuje powtórzenia liczbą i samym znakiem: "aaabcc" staje się "3a1b2c" — trzy a, jedno b, dwa c. To narzędzie koduje tekst w ten sposób i dekoduje go z powrotem, całkowicie w przeglądarce. To ten sam princip stojący za kompresją faksową, wariantem RLE w BMP i prostymi formatami zasobów gier: powtarzające się dane znacznie się zmniejszają, podczas gdy tekst bez powtórzeń prawie się nie zmienia.

Dwie opcje formatu kontrolują, jak każda seria jest zapisywana: liczba przed znakiem (3a) lub znak przed liczbą (a3). Włączenie "kompresuj tylko serie dłuższe niż 1" pozostawia pojedyncze wystąpienia niezakodowane — "aaabcc" staje się "3ab2c" zamiast "3a1b2c" — czytając bliżej tego, jak uczy się RLE, kosztem potrzeby separatora dla tekstu zawierającego również cyfry. Separator między seriami (przecinek, spacja, cokolwiek wpisujesz) całkowicie eliminuje tę dwuznaczność i jest wymagany w trybie bajtów. "Przetwarzaj linia po linii" zapobiega seriom w przekraczaniu podziałów linii, przydatne, gdy każda linia jest naprawdę właściwym rekordem.

Tryb bajtów traktuje wejście jako bajty szesnastkowe zamiast znaków tekstowych — wklej heks jak "00 00 00 ff" (spacje są ignorowane) i jest grupowany i kompresowany bajt po bajcie, co jest sposobem, w jaki RLE jest rzeczywiście używane na danych binarnych, takich jak nieskompresowane wiersze obrazów. Dekodowanie odzwierciedla każdą opcję: wybierz ten sam format, separator i ustawienie trybu bajtów użyte do kodowania, a oryginalny tekst lub heks wróci dokładnie. Żywy licznik pokazuje długość wejścia i wyjścia oraz współczynnik kompresji, więc na pierwszy rzut oka widzisz, czy dane wejście jest dobrym kandydatem do kodowania długości serii.

Wszystko działa lokalnie w przeglądarce — nic, co wkleisz, nie jest nigdzie przesyłane. Skopiuj wynik, pobierz go jako plik .txt lub wyślij wyjście z powrotem do wejścia, aby przełączyć kierunek i zweryfikować pełną podróż.

Częste pytania

Co dokładnie oznacza 3a1b2c?
Oznacza to trzy a, jedno b, a następnie dwa c — kodowanie długości serii "aaabcc". Liczba zawsze towarzyszy znakowi, który liczy, w dowolnej kolejności wybranej przez opcję formatu.
Dlaczego dekodowanie czasami zawodzi lub tworzy błędny tekst?
Dekodowanie zakłada, że format, separator i opcje trybu bajtów odpowiadają temu, co zostało użyte do kodowania. Jeśli oryginalny tekst zawiera znaki cyfr i nie był używany separator, cyfry mogą być błędnie odczytane jako część liczby — dodaj separator, aby tego uniknąć.
Kiedy kodowanie długości serii jest naprawdę przydatne?
Na danych z długimi powtarzającymi się seriami — jednolite wiersze obrazów, bajty dopełniające, powtórzenia znaków dziennika — znacznie zmniejsza się wyjście. Na zwyczajnym tekście zwykle zwiększa wyjście, ponieważ większość znaków się nie powtarza.
Do czego służy tryb bajtów?
Interpretuje wejście jako bajty zakodowane szesnastkowo zamiast tekstu, dzięki czemu możesz kodować długość serii danych binarnych (wklejonych jako hex) w taki sposób, w jaki robią to formaty obrazów i faksów, bajt po bajcie zamiast znaku po znaku.
Czy moje dane są wysyłane gdziekolwiek?
Nie. Kodowanie i dekodowanie odbywa się całkowicie w przeglądarce — nic, co wpiszesz lub wkleisz, nigdy nie opuszcza Twojego urządzenia.