我正在尝试将 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。
我希望这更清楚!
最佳答案
很难说出您要实现的目标,但假设您正在尝试获取一个 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
将是一个byte[]
(不是string
)。如果我们知道字节数组表示 UTF8 中的字符串,则可以使用以下方法将其转换回字符串形式:
string str = Encoding.UTF8.GetString(bytes);
Console.WriteLine(str);
这将输出原始输入字符串,在本例中为 abcdef==
。
关于c# - 将 UTF-8 转换为 base64 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13938137/