C# 中的 URL 安全 Base64 编码
Base64 编码是一种常见的编码方式,但在进行 URL 安全编码时,某些字符( 、/ 和 =)可能会造成问题。虽然 Java 的 Codec 库提供了一种直接的解决方案,但 C# 需要稍微不同的方法。
实现 URL 安全编码
要在 C# 中实现 URL 安全的 Base64 编码,可以简单地将有问题的字符替换为 URL 友好的字符(- 代替 ,_ 代替 /),并删除任何填充字符 (=)。
<code class="language-csharp">string returnValue = System.Convert.ToBase64String(toEncodeAsBytes) .TrimEnd(padding).Replace('+', '-').Replace('/', '_');</code>
其中,padding 定义为:
<code class="language-csharp">static readonly char[] padding = { '=' };</code>
要反转此过程:
<code class="language-csharp">string incoming = returnValue .Replace('_', '/').Replace('-', '+'); switch(returnValue.Length % 4) { case 2: incoming += "=="; break; case 3: incoming += "="; break; } byte[] bytes = Convert.FromBase64String(incoming); string originalText = Encoding.ASCII.GetString(bytes);</code>
与 Codec 库的比较
值得注意的是,这种方法类似于 Java 的 Codec 库使用的方法。但是,建议测试此假设以确保与正在使用的特定库兼容。
以上是如何在C#中实现编码和解码的URL-SAFE BASE64?的详细内容。更多信息请关注PHP中文网其他相关文章!