📅  最后修改于: 2023-12-03 15:17:51.764000             🧑  作者: Mango
Base64编码是一种将二进制数据编码为ASCII字符的方法,经常在网络传输中使用。在C#中,我们可以使用Newtonsoft.Json库轻松地将字符串转换为Base64编码或将Base64编码字符串解码为原始字符串。
要将字符串转换为Base64编码字符串,请使用 Convert.ToBase64String()
方法。以下是一个示例:
string originalString = "Hello World!";
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(originalString);
string base64String = Convert.ToBase64String(bytes);
Console.WriteLine(base64String); // SGVsbG8gV29ybGQh
这里,我们将原始字符串转换为字节数组,使用 Convert.ToBase64String()
将其转换为Base64编码字符串。
要将Base64编码字符串解码为原始字符串,请使用 Convert.FromBase64String()
方法。以下是一个示例:
string base64String = "SGVsbG8gV29ybGQh";
byte[] bytes = Convert.FromBase64String(base64String);
string originalString = System.Text.Encoding.UTF8.GetString(bytes);
Console.WriteLine(originalString); // Hello World!
这里,我们使用 Convert.FromBase64String()
将Base64编码字符串转换为字节数组,再使用 Encoding.UTF8.GetString()
将其解码为原始字符串。
除了将字符串进行编码和解码,我们也可以使用Newtonsoft.Json库将对象序列化为Base64编码字符串。以下是一个示例:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
Person person = new Person { Name = "Alice", Age = 30 };
string jsonString = JsonConvert.SerializeObject(person);
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(jsonString);
string base64String = Convert.ToBase64String(bytes);
Console.WriteLine(base64String); // eyJOYW1lIjoiQWxpY2UiLCJBZ2UiOjMwfQ==
这里我们创建了一个 Person
类,将其序列化为JSON字符串,然后将JSON字符串转换为字节数组,并使用 Convert.ToBase64String()
将其转换为Base64编码字符串。
如果我们有一个Base64编码字符串,我们可以使用Newtonsoft.Json将其反序列化为原始对象。以下是一个示例:
string base64String = "eyJOYW1lIjoiQWxpY2UiLCJBZ2UiOjMwfQ==";
byte[] bytes = Convert.FromBase64String(base64String);
string jsonString = System.Text.Encoding.UTF8.GetString(bytes);
Person person = JsonConvert.DeserializeObject<Person>(jsonString);
Console.WriteLine(person.Name); // Alice
这里,我们将Base64编码字符串转换为字节数组和原始字符串,使用 JsonConvert.DeserializeObject<T>()
将JSON字符串反序列化为Person对象。