52

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

示例:我有 "abcdef==" in UTF-8。它实际上是base64字符串的“表示”。

如何检索“abcdef==”base64字符串(请注意,我不想要“abcdef==”“translation” UTF-8,我想得到一个编码base64为“abcdef==”字符串)。

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

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

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

所以我需要从这个套接字消息中检索base64“abcedf==”字符串才能得到A。

我希望这更清楚!

4

1 回答 1

142

很难说出您要实现的目标,但假设您尝试获取解码时为的 Base64 字符串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将是 a byte[](不是 a string)。如果我们知道字节数组表示 UTF8 中的字符串,则可以使用以下方法将其转换回字符串形式:

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

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

于 2012-12-18T17:25:43.830 回答