c# - 将 UTF-8 转换为 base64 字符串

标签 c# encoding utf-8 base64

我正在尝试将 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/

相关文章:

json - SQL - UTF-8 到 varchar/nvarchar 编码问题

c# - UTF8 byte[] 到字符串的转换

带链接的 C# WPF 文本

c# - 用于列表项的 Asp.net razor 文本框数组

c# - 网站-编译类-在服务器中更新

php - UTF-8贯穿始终

c# - 动态创建新的 PropertyInfo 对象

python - 如何确定 Python 中 datetime.strftime(...) 的编码?

java - Node 缓冲区打印问题

ruby-on-rails - Heroku 上出现 "invalid multibyte escape:/^\xFF\xFE/(SyntaxError)"错误