Выберите ваши замены.Рассмотрим некоторые другие варианты: таблица вариантов base64 из Википедии .
В то время как кодировщик / декодеры base64 тривиальны, замену можно выполнить на простом этапе до / после обработки существующие функции кодирования / декодирования base64 (внутри упаковщиков) - нет необходимости заново изобретать колесо (полностью).Или, что еще лучше, как указывает г-н Скит, найдите существующую библиотеку с достаточной гибкостью.
Если у вас нет альтернативных подходящих «забавных» символов на выбор (возможно, все остальные символы недействительны, оставляя только62 буквенно-цифровых символа на выбор), вы всегда можете использовать escape-символ для очень небольшого (~ 3/64?) Увеличения размера .Например, 0 (A) будет кодироваться как «AA», 62 (+) будет кодироваться как «AB», а 63 (/) будет кодироваться как «AC».Это также может быть сделано до / после шага, если вы не хотите писать свой собственный кодер / декодер с нуля.Недостаток этого подхода заключается в том, что отношение выходных символов к входным байтам не является фиксированным.