Перейти до вмісту
100% локально

Кодування довжин повторів

Стискайте повторювані символи в пари число-символ і розпаковуйте їх назад.

Введення
Вихід

Кодування довжин повторів

Кодування довжин повторів замінює повторювані символи на число і символ: "aaabcc" стає "3a1b2c" — три a, один b, два c. Цей інструмент кодує текст таким чином і декодує його назад повністю у вашому браузері. Це той самий принцип, що використовується при факсимільному стисненні, RLE варіанту BMP і простих форматах ігрових ресурсів: повторювані дані стискаються значно, а текст без повторень практично не змінює розмір.

Дві опції формату контролюють, як записується кожне повторення: число перед символом (3a) або символ перед числом (a3). Включення "стискати лише повторення довше 1" залишає поодинокі входження як є — "aaabcc" стає "3ab2c" замість "3a1b2c" — що виглядає ближче до того, як RLE викладається, але потребує розділювача, якщо текст містить цифри. Розділювач між повторами (кома, пробіл, будь-який символ) повністю усуває цю неоднозначність і потрібен для режиму байтів. "Обробляти построчно" запобігає перетину повторень між строками, що корисно, коли кожна строка — це окремий запис.

Режим байтів обробляє вхідні дані як шістнадцяткові байти замість текстових символів — вставте hex типу "00 00 00 ff" (пробіли ігноруються) і вони групуються і стискаються байт за байтом, як RLE фактично використовується на двійкових даних, таких як нестиснені рядки зображень. Декодування відбиває кожну опцію: виберіть той самий формат, розділювач і параметри режиму байтів, використані при кодуванні, і вихідний текст або hex повернеться точно. Живий лічильник показує довжину входу і виходу плюс коефіцієнт стиснення, так що ви можете відразу побачити, хороший чи кандидат для кодування довжин повторів взагалі.

Все працює локально у вашому браузері — ніщо, що ви вставите, не завантажується нікуди. Скопіюйте результат, завантажте його як файл .txt або відправте вихід прямо назад на вхід, щоб перемкнути напрямок і перевірити зворотне перетворення.

FAQ

Що насправді означає 3a1b2c?
Це означає три a, один b, потім два c — кодування довжин повторів "aaabcc". Число завжди йде з символом, який воно вважає, у якому б порядку не вибрав параметр формату.
Чому декодування іноді не працює або видає неправильний текст?
Декодування припускає, що формат, розділювач і параметри режиму байтів відповідають тому, що використовувалось при кодуванні. Якщо вихідний текст містить символи цифр і розділювач не використовувався, цифри можуть бути неправильно інтерпретовані як частина числа — додайте розділювач, щоб уникнути цього.
Коли кодування довжин повторів дійсно корисне?
На даних з довгими повторюваними послідовностями — рядки однокольорових зображень, байти заповнення, повторювані символи логів — він значно стискує вихід. На типовому прозаїчному тексті він зазвичай збільшує вихід, оскільки більшість символів не повторюються.
Для чого потрібен режим байтів?
Він обробляє вхідні дані як шістнадцяткові байти замість тексту, тому ви можете кодувати двійкові дані методом RLE (вставляється як hex) так, як це роблять формати зображень і факсів, байт за байтом замість символу за символом.
Мій текст завантажується кудись?
Ні. Кодування і декодування виконуються повністю у вашому браузері — ніщо, що ви вводите або вставляєте, ніколи не залишає вашого пристрою.