Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Melaksanakan Pengekodan dan Penyahkodan Base64 URL-Safe dalam C#?

Bagaimana untuk Melaksanakan Pengekodan dan Penyahkodan Base64 URL-Safe dalam C#?

Susan Sarandon
Susan Sarandonasal
2025-01-25 03:17:09287semak imbas

How to Implement URL-Safe Base64 Encoding and Decoding in C#?

Pengekodan Base64 yang selamat URL dalam C#

Pengekodan Base64 ialah pengekodan biasa, tetapi aksara tertentu ( , / dan =) boleh menyebabkan masalah apabila pengekodan selamat URL dilakukan. Walaupun perpustakaan Codec Java menyediakan penyelesaian yang mudah, C# memerlukan pendekatan yang sedikit berbeza.

Laksanakan pengekodan selamat URL

Untuk melaksanakan pengekodan Base64 yang selamat URL dalam C#, anda boleh menggantikan aksara yang bermasalah dengan aksara mesra URL (- bukannya , _ bukannya /), dan alih keluar sebarang aksara padding (=).

<code class="language-csharp">string returnValue = System.Convert.ToBase64String(toEncodeAsBytes)
        .TrimEnd(padding).Replace('+', '-').Replace('/', '_');</code>

Antaranya, padding ditakrifkan sebagai:

<code class="language-csharp">static readonly char[] padding = { '=' };</code>

Untuk membalikkan proses ini:

<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>

Perbandingan dengan perpustakaan Codec

Perlu diperhatikan bahawa pendekatan ini serupa dengan yang digunakan oleh perpustakaan Codec Java. Walau bagaimanapun, adalah disyorkan untuk menguji andaian ini untuk memastikan keserasian dengan perpustakaan khusus yang digunakan.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pengekodan dan Penyahkodan Base64 URL-Safe dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn