Кодировщик / декодировщик Base62
Текст
Base62
Технические детали
Как работает кодировщик/декодировщик Base62
Что делает инструмент
Base62 кодирует бинарные данные, используя 62 буквенно-цифровых символа (0-9, A-Z, a-z), и декодирует строки Base62 обратно в текст или hex. Результат содержит только URL-безопасные символы без заполнения, без '+', '/' или '=', поэтому его можно напрямую вставлять в URL и параметры запроса без percent-encoding.
Распространенные сценарии использования для разработчиков
Сервисы сокращения URL (bit.ly, t.co, исторически goo.gl) используют Base62, чтобы кодировать возрастающие целочисленные ID в компактные, удобные для распространения слаги. Бэкенд-разработчики генерируют короткие непрозрачные идентификаторы для социальных постов, твитов и загруженных ресурсов. Маркетологи отслеживают кампании с помощью UTM-параметров, закодированных Base62, которые выглядят аккуратнее, чем Base64.
Форматы данных, типы или варианты
Инструмент использует наиболее распространённый порядок алфавита Base62: цифры 0-9, затем заглавные A-Z, затем строчные a-z. Разные реализации могут использовать другой порядок (некоторые ставят строчные перед заглавными), поэтому всегда проверяйте совместимость алфавита перед передачей закодированных данных между системами. Вывод показывается как для UTF-8 текста, так и для ввода сырых байтов в hex.
Распространенные ошибки и крайние случаи
Base62 не стандартизирован — порядок алфавита отличается между библиотеками (этот инструмент использует 0-9, A-Z, a-z, в соответствии с соглашением npm `base-x`). Ведущие нулевые байты в бинарных данных сохраняются кодировщиком, но строка Base62, начинающаяся с '0', декодируется в то же значение, что и строка без него — канонической формы нет. Для совместимости между языками документируйте точный алфавит, который вы использовали.
Когда использовать этот инструмент, а когда — код
Используйте браузерный инструмент для разового кодирования и декодирования при отладке URL-слагов или коротких ID. В коде предпочитайте npm-пакет `base-x` (JavaScript), `pybase62` или самописное преобразование (Python) либо Java-реализации `Base62.io` — и всегда фиксируйте алфавит в тестах, чтобы будущий рефакторинг не изменил кодирование незаметно.