Base64 кодирует байты, а не абстрактные символы. Текстовый инструмент обязан задать преобразование символов в байты. Base64Lens использует WHATWG UTF-8, поэтому латиница, кириллица, акценты и emoji получают явную последовательность байтов. Изолированные UTF-16 суррогаты отклоняются до скрытой замены, а fatal-декодер отвергает неверные байты вместо символа замены.
UTF-8 создаёт байтовые данные
Текст Hello, мир 🌍 содержит ASCII, кириллицу и emoji. Его байты UTF-8: 48 65 6C 6C 6F 2C 20 D0 BC D0 B8 D1 80 20 F0 9F 8C 8D. Кодирование этих 18 байтов даёт SGVsbG8sINC80LjRgCDwn4yN. Знаки равенства не нужны, потому что 18 делится на три. Это свойство числа байтов, а не видимых символов.
Строгое декодирование исключает скрытую замену
Строка Base64 может быть структурно верной, но содержать байты, не являющиеся UTF-8. Например, /w== корректно представляет байт FF, но FF не может начинать UTF-8-последовательность. Base64Lens сообщает INVALID_UTF8 и очищает прошлый результат. Он не показывает U+FFFD, не угадывает старую кодировку и не трактует байт как файл.
Проверяйте точную обратимость
Надёжная проверка сравнивает точную последовательность символов, включая пробелы, окончания строк, combining marks и форму нормализации. Base64Lens не обрезает текст, не меняет переводы строк и не нормализует Unicode. Визуально похожие строки могут дать разные байты и Base64. Это данные, а не ошибка. Перед копированием подтвердите границу текста в целевой системе.