С# Метод вроде Base64String, но только буквенно-цифровой (без плюса или косой черты)
существует ли какой-либо метод С#, который работает аналогично Convert.ToBase64String, но не генерирует ничего, кроме буквенно-цифрового вывода?
Спасибо!
Ответ 1
Вероятно, вы, вероятно, используете что-то вроде кодировки Base32. Существует код-декодер Base32 для С# здесь от Michael Giagnocavo. Он использует комбинацию заглавных букв и цифр.
Также существует связанное обсуждение StackOverflow здесь.
РЕДАКТИРОВАТЬ: И если это возможно для кодировки Base64, связанной с URL-безопасностью, просто используйте Base64 и замените "+" на "-" и "/" на "_". Но я предполагаю, вы можете не хотеть этого для этого.
Ответ 2
Ответы немного устарели. В интересах будущих поисковиков: лучший способ справиться с этим сейчас на С#:
byte[] b; // fill your byte array somehow
string s = System.Web.HttpServerUtility.UrlTokenEncode(b);
Это возвращает строку, закодированную в Base64, которая безопасна для URL (это то, о чем вы сказали, что действительно находитесь в комментариях к вашему вопросу).
Затем вы можете его декодировать, используя, как вы уже догадались:
byte[] b = System.Web.HttpServerUtility.UrlTokenDecode(s);
Ответ 3
вы можете заменить + или слэш с помощью некоторой предопределенной строки, если это возможно.
Ответ 4
Общий вариант base-64 (для использования в строке запроса) заключается в использовании '-' и '_' вместо '+' и '/'. Может быть, немного Replace(...) на каждом конце выполнит эту работу?
Ответ 5
Вы можете использовать BitConverter.ToString(), который даст вам шестую строку. Однако результирующие строки будут длиннее, чем кодировка Base64.