52

文字列に変換しようとしUTF-8ていbase64ます。

例:に「abcdef==」がありUTF-8ます。実際には、base64文字列の「表現」です。

「abcdef==」base64文字列を取得するにはどうすればよいですか(「abcdef ==」から「translation」は必要ないことに注意してください。「abcdef==」エンコードされUTF-8た文字列を取得したいのですが)。base64

編集
私の質問は不明確に思われるので、ここに再定式化があります:

私のバイト配列(たとえば、Aという名前を付けます)はbase64文字列で表されます。Aをに変換するとbase64「abcdef==」になります。

この文字列表現は、UTF-8のソケットを介して送信されます(文字列表現はUTF-8とbase64でまったく同じであることに注意してください)。そのため、UTF-8に「whatever / abcdef ==/whatever」を含むUTF-8メッセージが表示されます。

したがって、Aを取得するには、このソケットメッセージからbase64 "abcedf=="文字列を取得する必要があります。

これがもっと明確になることを願っています!

4

1 に答える 1

142

何を達成しようとしているのかを判断するのは少し難しいですが、デコードされabcdef==たときに次のように機能するBase64文字列を取得しようとしていると仮定します。

byte[] bytes = Encoding.UTF8.GetBytes("abcdef==");
string base64 = Convert.ToBase64String(bytes);
Console.WriteLine(base64);

これは出力します:YWJjZGVmPT0=これはabcdef==Base64でエンコードされています。

編集:

Base64文字列をデコードするには、単に。を使用しますConvert.FromBase64String()。例えば

string base64 = "YWJjZGVmPT0=";
byte[] bytes = Convert.FromBase64String(base64);

この時点で、bytesbyte[](ではなくstring)になります。バイト配列がUTF8の文字列を表すことがわかっている場合は、次を使用して文字列形式に戻すことができます。

string str = Encoding.UTF8.GetString(bytes);
Console.WriteLine(str);

この場合、元の入力文字列が出力さabcdef==れます。

于 2012-12-18T17:25:43.830 に答える