#c_sharp #base64
Какие в c# есть варианты кодирования последовательности байт в строковую форму, кроме base64? Вариант с base64 устраивает почти всем, но у него в символах алфавита используется несколько неудобных знаков. Мне мешает символ '=', ещё на википедии упоминается, что возможны проблемы с передачей base64-кодированной строки в url. Как возможный вариант замены рассматриваю base58, которая упоминается там же на википедии и которая используется в некоторых биткоин-прокотолах. У неё на выходе возможны только варианты букв и цифр. Жаль, что в C# включили именно base64, а не base58, придётся подключать какой-нибудь пакет. Есть ли какие-то ещё варианты? Есть ли допустим base32 или base16?
Ответы
Ответ 1
Просто в голову пришла вот такая мысль 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);Ответ 2
Можно каждый байт кодировать как 16-ричное число (2 символа). Пример: 255 = 'FF' 165 = 'A5' 0 = '00' и т.д.
Комментариев нет:
Отправить комментарий