将UTF-8转换为base64字符串

Nic*_*ron 47 c# base64 encoding utf-8

我正在尝试转换UTF-8base64字符串.

示例:我有"abcdef ==" UTF-8.它实际上是一个base64字符串的"表示" .

我怎样才能检索"ABCDEF ==" base64字符串(请注意,我不希望有一个"ABCDEF ==""翻译"的UTF-8,我想在编码的字符串base64 "ABCDEF ==").

编辑
由于我的问题似乎不清楚,这是一个重新制定:

我的字节数组(假设我将其命名为A)由base64字符串表示.转换A base64给我"abcdef ==".

此字符串表示形式通过UTF-8中的套接字发送(请注意,UTF-8和base64中的字符串表示形式完全相同).所以我收到一条UTF-8消息,其中包含UTF-8中的"whatever/abcdef ==/whatever".

所以我需要从这个套接字消息中检索base64"abcedf =="字符串才能获得A.

我希望这更清楚!

Iri*_*ium 137

这是一个有点很难说你想什么来实现,但假设你正在试图获得一个Base64字符串,当解码就是abcdef==,下面应该工作:

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

这将输出:YWJjZGVmPT0=abcdef==在Base64编码.

编辑:

要解码Base64字符串,只需使用Convert.FromBase64String().例如

string base64 = "YWJjZGVmPT0=";
byte[] bytes = Convert.FromBase64String(base64);
Run Code Online (Sandbox Code Playgroud)

此时,bytes将是一个byte[](不是一个string).如果我们知道字节数组表示UTF8中的字符串,那么可以使用以下命令将其转换回字符串形式:

string str = Encoding.UTF8.GetString(bytes);
Console.WriteLine(str);
Run Code Online (Sandbox Code Playgroud)

abcdef==在这种情况下,这将输出原始输入字符串.