如何在C#中对字符串进行Base64编码和解码?
大家好!我是一名初学C#的开发者,在处理Base64时遇到了问题。我需要通过API以字符串形式传输数据,于是决定使用Base64进行编码。
我写了这样的代码:
```csharp
string original = "Привет, мир!";
byte[] bytes = Encoding.UTF8.GetBytes(original);
string encoded = Convert.ToBase64String(bytes);
Console.WriteLine(encoded); // 输出类似 "0J/RgNC40LLQtdGCLCDQvNC40YAh"
```
解码我尝试这样做:
```csharp
string decoded = Convert.FromBase64String(encoded).ToString();
Console.WriteLine(decoded); // 输出 "System.Byte[]"
```
显然这是错误的。我知道 `Convert.FromBase64String` 返回的是字节数组,而不是字符串。但如何正确地将这个数组转换回可读的字符串呢?
另外,我还关心以下几点:
1. 是否必须使用 `Encoding.UTF8`,或者可以用其他编码?
2. 如果字符串中包含ASCII不支持的字符该怎么办?
3. 有