¿Cómo codificar y decodificar una cadena en Base64 en C#?
¡Hola a todos! Soy un desarrollador principiante de C# y me encontré con un problema al trabajar con Base64. Necesito transmitir datos a través de una API como una cadena, y decidí usar Base64 para la codificación.
Escribí este código:
```csharp
string original = "Привет, мир!";
byte[] bytes = Encoding.UTF8.GetBytes(original);
string encoded = Convert.ToBase64String(bytes);
Console.WriteLine(encoded); // muestra algo como "0J/RgNC40LLQtdGCLCDQvNC40YAh"
```
Intenté la decodificación así:
```csharp
string decoded = Convert.FromBase64String(encoded).ToString();
Console.WriteLine(decoded); // muestra "System.Byte[]"
```
Obviamente, esto es incorrecto. Entiendo que `Convert.FromBase64String` devuelve un array de bytes, no una cadena. Pero, ¿cómo convierto correctamente ese array de vuelta a una cadena legible?
También me interesan los siguientes puntos:
1. ¿Necesito usar `Encoding.UTF8` o puedo usar otra cosa?
2. ¿Qué hacer si la cadena contiene caracteres no soportados por ASCII?
3. ¿Hay