UTF-8
をbase64
文字列に変換しようとしています。
例:UTF-8
に「abcdef ==」があります。実際には、base64
文字列の「表現」です。
"abcdef ==" base64
文字列を取得するにはどうすればよいですか(UTF-8
から "abcdef ==" "translation"が必要ないことに注意してください。base64
which is "abcdef ==")。
編集
私の質問は不明確であるように思われるので、ここに再編成があります:
私のバイト配列(Aと名付けましょう)は、base64
文字列で表されます。 Aをbase64
に変換すると、「abcdef ==」が得られます。
この文字列表現は、UTF-8のソケットを介して送信されます(文字列表現はUTF-8とbase64でまったく同じであることに注意してください)。そのため、UTF-8で「whatever/abcdef ==/whatever」を含むUTF-8メッセージを受け取ります。
Aを取得するには、このソケットメッセージからbase64 "abcedf =="文字列を取得する必要があります。
これがより明確であることを願っています!
何を達成しようとしているのかを伝えるのは少し難しいですが、decodedがabcdef==
、以下が機能するはずです。
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);
この時点で、bytes
はbyte[]
になります(string
ではありません)。バイト配列がUTF8の文字列を表していることがわかっている場合は、次を使用して文字列形式に戻すことができます。
string str = Encoding.UTF8.GetString(bytes);
Console.WriteLine(str);
これにより、元の入力文字列、この場合はabcdef==
が出力されます。