Какие в c# есть варианты кодирования последовательности байт в строковую форму, кроме base64?
Вариант с base64 устраивает почти всем, но у него в символах алфавита используется несколько неудобных знаков. Мне мешает символ '=', ещё на википедии упоминается, что возможны проблемы с передачей base64-кодированной строки в url.
Как возможный вариант замены рассматриваю base58, которая упоминается там же на википедии и которая используется в некоторых биткоин-прокотолах. У неё на выходе возможны только варианты букв и цифр. Жаль, что в C# включили именно base64, а не base58, придётся подключать какой-нибудь пакет.
Есть ли какие-то ещё варианты? Есть ли допустим base32 или base16?
Просто в голову пришла вот такая мысль
var str = "Hello, World!";
var encoded = HttpUtility.UrlEncode(
Convert.ToBase64String(Encoding.Default.GetBytes(str)));
Console.WriteLine(encoded);
var decoded = Encoding.Default.GetString(
Convert.FromBase64String(HttpUtility.UrlDecode(encoded)));
Console.WriteLine(decoded);
Можно каждый байт кодировать как 16-ричное число (2 символа). Пример:
255 = 'FF'
165 = 'A5'
0 = '00'
и т.д.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей