「URL 用の変更された Base64」の概念で定義されているように、変更された Base64 URL のデコードとエンコードは、カスタム コードまたは HttpServerUtility
クラスのメソッドを利用して実装できます。
変更された Base64 エンコードを実行するには、次のコードを使用できます:
<code class="language-csharp">// 执行正常的 base64 编码 byte[] encodedBytes = Encoding.UTF8.GetBytes(unencodedText); string base64EncodedText = Convert.ToBase64String(encodedBytes); // 应用 URL 变体 string base64UrlEncodedText = base64EncodedText.Replace("=", "").Replace('+', '-').Replace('/', '_');</code>
デコードするには、次のコードを使用できます:
<code class="language-csharp">string base64EncodedText = base64UrlEncodedText.Replace('-', '+').Replace('_', '/'); // 根据需要追加“=”字符 - 最佳方法是什么? // 我正常的 base64 解码现在使用 encodedText</code>
または、HttpServerUtility
クラスの UrlTokenEncode
メソッドと UrlTokenDecode
メソッドを使用することもできます。
<code class="language-csharp">///<summary> /// 使用 UTF-8 字符集进行 Base 64 编码,使用 URL 和文件名安全字母表。 ///</summary> ///原始字符串 ///<returns>Base64 编码的字符串</returns> public static string Base64ForUrlEncode(string str) { byte[] encbuff = Encoding.UTF8.GetBytes(str); return HttpServerUtility.UrlTokenEncode(encbuff); } ///<summary> /// 使用 UTF-8 解码使用 URL 和文件名安全字母表的 Base64 编码字符串。 ///</summary> ///Base64 代码 ///<returns>解码后的字符串。</returns> public static string Base64ForUrlDecode(string str) { byte[] decbuff = HttpServerUtility.UrlTokenDecode(str); return Encoding.UTF8.GetString(decbuff); }</code>
注 1: HttpServerUtility
メソッドの出力は、一部の文字を URL セーフな文字に置き換えるため、有効な Base64 文字列ではありません。
注 2: HttpServerUtility
の出力形式は、RFC4648 の Base64url アルゴリズムとは異なります。これは、
以上がASP.NET Framework で変更された Base64 URL をエンコードおよびデコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。