ホームページ > バックエンド開発 > C++ > C#でURLセーフBase64エンコードとデコードを実装する方法は?

C#でURLセーフBase64エンコードとデコードを実装する方法は?

Susan Sarandon
リリース: 2025-01-25 03:17:09
オリジナル
285 人が閲覧しました

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

C# での URL セーフな Base64 エンコード

Base64 エンコードは一般的なエンコードですが、URL セーフ エンコードを実行すると、特定の文字 ( 、/、および =) によって問題が発生する可能性があります。 Java のコーデック ライブラリは簡単な解決策を提供しますが、C# では少し異なるアプローチが必要です。

URL セーフ エンコーディングを実装する

C# で URL セーフな Base64 エンコーディングを実装するには、問題のある文字を URL に適した文字 (/ の代わりに -、/ の代わりに _) に置き換え、パディング文字 (=) を削除するだけです。

<code class="language-csharp">string returnValue = System.Convert.ToBase64String(toEncodeAsBytes)
        .TrimEnd(padding).Replace('+', '-').Replace('/', '_');</code>
ログイン後にコピー

そのうち、パディングは次のように定義されます:

<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>
ログイン後にコピー

コーデックライブラリとの比較

このアプローチは Java のコーデック ライブラリで使用されるアプローチと似ていることに注目してください。ただし、使用されている特定のライブラリとの互換性を確認するために、この仮定をテストすることをお勧めします。

以上がC#でURLセーフBase64エンコードとデコードを実装する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート