是否有任何与 Convert.ToBase64String 类似的 C# 方法,但除了字母数字输出之外不生成任何内容?
谢谢!
现在的答案有点过时了。为了将来的搜索者的利益:现在在 C# 中处理此问题的最佳方法是:
byte[] b; // fill your byte array somehow
string s = System.Web.HttpServerUtility.UrlTokenEncode(b);
这将返回一个 URL 安全的 Base64 编码字符串(这就是您在问题的评论中所说的真正追求的内容)。
然后,您可以使用它再次对其进行解码,您猜对了:
byte[] b = System.Web.HttpServerUtility.UrlTokenDecode(s);
base-64 的一个常见变体(用于查询字符串)是使用“-”和“_”代替“+”和“/”。也许Replace(...)
在每一端都有一点可以完成这项工作?
如果可能,您可以用一些预定义的字符串替换 + 或斜杠。
我正在寻找类似的编码器,我使用了https://github.com/renmengye/base62-csharp/
它是“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz”字符空间范围内的编码器/解码器。
我只是用它包装了它的方法
System.Text.Encoding.UTF8.GetBytes(plainText);
和
System.Text.Encoding.UTF8.GetString(decoded);
调用以使其可以轻松地处理字符串。
您可以使用 BitConverter.ToString() 它将为您提供一个十六进制字符串。但是,生成的字符串将比 Base64 编码长。