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安全的Base64編碼和解碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!