Conversion Unicode en chaîne en C #

Comment puis-je convertir une valeur Unicode en sa chaîne équivalente?

Par exemple, j’ai “” et j’ai besoin d’une fonction qui accepte cette valeur Unicode et retourne une chaîne.

Je regardais la fonction System.Text.Encoding.Convert (), mais cela ne prend pas une valeur Unicode; il faut deux encodages et un tableau d’octets.

J’ai essentiellement un tableau d’octets que j’ai besoin de sauvegarder dans un champ chaîne, puis de revenir plus tard et de convertir la chaîne en un tableau d’octets.

J’utilise donc ByteConverter.GetSsortingng (byteArray) pour enregistrer le tableau d’octets en chaîne, mais je ne peux pas le récupérer dans un tableau d’octets.

Essayez ce qui suit:

 byte[] bytes = ...; ssortingng convertedUtf8 = Encoding.UTF8.GetSsortingng(bytes); ssortingng convertedUtf16 = Encoding.Unicode.GetSsortingng(bytes); // For UTF-16 

L’autre solution consiste à utiliser `GetBytes ():

 byte[] bytesUtf8 = Encoding.UTF8.GetBytes(convertedUtf8); byte[] bytesUtf16 = Encoding.Unicode.GetBytes(convertedUtf16); 

Dans la classe Encoding , il existe plus de variantes si vous en avez besoin.

Utilisez .ToSsortingng ();

 this.Text = ((char)0x00D7).ToSsortingng(); 

Pour convertir une chaîne en chaîne Unicode, procédez comme suit: très simple … notez la fonction BytesToSsortingng qui évite l’utilisation de tout élément de conversion intégré. Rapide aussi.

 private ssortingng BytesToSsortingng(byte[] Bytes) { MemoryStream MS = new MemoryStream(Bytes); StreamReader SR = new StreamReader(MS); ssortingng S = SR.ReadToEnd(); SR.Close(); return S; } private ssortingng ToUnicode(ssortingng S) { return BytesToSsortingng(new UnicodeEncoding().GetBytes(S)); } 

Classe UTF8Encoding

  UTF8Encoding uni = new UTF8Encoding(); Console.WriteLine( uni.GetSsortingng(new byte[] { 1, 2 })); 

Il existe différents types d’encodage. Vous pouvez en essayer quelques-unes pour voir si votre bytestream est converti correctement:

 System.Text.ASCIIEncoding encodingASCII = new System.Text.ASCIIEncoding(); System.Text.UTF8Encoding encodingUTF8 = new System.Text.UTF8Encoding(); System.Text.UnicodeEncoding encodingUNICODE = new System.Text.UnicodeEncoding(); var ascii = ssortingng.Format("{0}: {1}", encodingASCII.ToSsortingng(), encodingASCII.GetSsortingng(textBytesASCII)); var utf = ssortingng.Format("{0}: {1}", encodingUTF8.ToSsortingng(), encodingUTF8.GetSsortingng(textBytesUTF8)); var unicode = ssortingng.Format("{0}: {1}", encodingUNICODE.ToSsortingng(), encodingUNICODE.GetSsortingng(textBytesCyrillic)); 

Regardez aussi: http://george2giga.com/2010/10/08/c-text-encoding-and-transcoding/ .

 var ascii = $"{new ASCIIEncoding().ToSsortingng()}: {((ASCIIEncoding)new ASCIIEncoding()).GetSsortingng(textBytesASCII)}"; var utf = $"{new UTF8Encoding().ToSsortingng()}: {((UTF8Encoding)new UTF8Encoding()).GetSsortingng(textBytesUTF8)}"; var unicode = $"{new UnicodeEncoding().ToSsortingng()}: {((UnicodeEncoding)new UnicodeEncoding()).GetSsortingng(textBytesCyrillic)}";