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
Lepaskan: 2025-01-25 03:17:09
asal
360 orang telah melayarinya

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 (=).

string returnValue = System.Convert.ToBase64String(toEncodeAsBytes)
        .TrimEnd(padding).Replace('+', '-').Replace('/', '_');
Salin selepas log masuk

Antaranya, padding ditakrifkan sebagai:

static readonly char[] padding = { '=' };
Salin selepas log masuk

Untuk membalikkan proses ini:

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);
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan