J'essaie de convertir UTF-8
à base64
chaîne.
Exemple: j'ai "abcdef ==" dans UTF-8
. C'est en fait une "représentation" d'un base64
chaîne.
Comment puis-je récupérer un "abcdef ==" base64
chaîne (notez que je ne veux pas de "traduction" abcdef == "" de UTF-8
, Je veux obtenir une chaîne encodée en base64
qui est "abcdef ==").
EDIT
Comme ma question ne semble pas claire, voici une reformulation:
Mon tableau d'octets (disons que je le nomme A) est représenté par un base64
chaîne. Conversion de A en base64
me donne "abcdef ==".
Cette représentation de chaîne est envoyée via un socket en UTF-8 (notez que la représentation de chaîne est exactement la même en UTF-8 et en base64). Je reçois donc un message UTF-8 contenant "quel que soit/abcdef ==/quel que soit" en UTF-8.
J'ai donc besoin de récupérer la chaîne base64 "abcedf ==" de ce message de socket pour obtenir A.
J'espère que c'est plus clair!
Il est un peu difficile de dire ce que vous essayez d’atteindre, mais en supposant que vous essayez d’obtenir une chaîne Base64 qui est décodée lorsque est abcdef==
, Ce qui suit devrait fonctionner:
byte[] bytes = Encoding.UTF8.GetBytes("abcdef==");
string base64 = Convert.ToBase64String(bytes);
Console.WriteLine(base64);
Cela produira: YWJjZGVmPT0=
Qui est abcdef==
Codé en Base64.
Edit:
Pour décoder une chaîne Base64, utilisez simplement Convert.FromBase64String()
. Par exemple.
string base64 = "YWJjZGVmPT0=";
byte[] bytes = Convert.FromBase64String(base64);
À ce stade, bytes
sera un byte[]
(Pas un string
). Si nous savons que le tableau d'octets représente une chaîne en UTF8, vous pouvez le reconvertir sous la forme chaîne à l'aide de:
string str = Encoding.UTF8.GetString(bytes);
Console.WriteLine(str);
Cela produira la chaîne d'entrée d'origine, abcdef==
Dans ce cas.