我正在尝试将UTF-8
转换为base64
字符串。
示例:UTF-8
中有“abcdef ==”。它实际上是base64
字符串的“表示”。
如何检索“abcdef ==”base64
字符串(请注意,我不想要UTF-8
的“abcdef ==”“翻译”,我希望获得一个字符串编码在base64
中 “abcdef ==”)。
修改
由于我的问题似乎不清楚,这是一个重新制定:
我的字节数组(假设我将其命名为A)由base64
字符串表示。将A转换为base64
会给我“abcdef ==”。
此字符串表示形式通过UTF-8中的套接字发送(请注意,字符串表示形式在UTF-8和base64中完全相同)。所以我收到一条UTF-8消息,其中包含UTF-8中的“whatever / abcdef == / whatever”。
所以我需要从这个套接字消息中检索base64“abcedf ==”字符串才能获得A.
我希望这更清楚!
答案 0 :(得分:136)
告诉您要实现的目标有点困难,但假设您尝试获取一个Base64字符串,当已解码为abcdef==
时,以下内容应该有效:
byte[] bytes = Encoding.UTF8.GetBytes("abcdef==");
string base64 = Convert.ToBase64String(bytes);
Console.WriteLine(base64);
这将输出:YWJjZGVmPT0=
,它是在Base64中编码的abcdef==
。
修改强>
要解码Base64字符串,只需使用Convert.FromBase64String()
即可。 E.g。
string base64 = "YWJjZGVmPT0=";
byte[] bytes = Convert.FromBase64String(base64);
此时,bytes
将是byte[]
(不是string
)。如果我们知道字节数组表示UTF8中的字符串,那么可以使用以下命令将其转换回字符串形式:
string str = Encoding.UTF8.GetString(bytes);
Console.WriteLine(str);
在这种情况下,这将输出原始输入字符串abcdef==
。