Conversion directe du tableau de chaîne à octet dans .net
fréquemment, les développeurs .NET doivent convertir les chaînes en tableaux d'octets. Le codage UTF-16 par défaut dans .NET peut être problématique lorsque vous traitez des chaînes en utilisant différents codages de caractères. Cet article présente une méthode pour obtenir la représentation des octets bruts d'une chaîne sans codage explicite.
Représentation des octets sans codage
Cette technique copie directement les données de caractères de la chaîne dans un tableau d'octets, contournant le codage des caractères:
static byte[] GetBytes(string str) { byte[] bytes = new byte[str.Length * sizeof(char)]; System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length); return bytes; }
Parce que les caractères .NET sont un Unicode 16 bits, la taille du tableau d'octets est str.Length * sizeof(char)
(nombre de caractères multiplié par 2 octets par caractère).
Reconstruction de chaîne à partir des octets
pour recréer la chaîne originale:
static string GetString(byte[] bytes) { char[] chars = new char[bytes.Length / sizeof(char)]; System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length); return new string(chars); }
Cela reflète le processus de conversion, copiant les octets dans un tableau de caractères et créant une chaîne.
Avantages de cette méthode
Cette approche offre plusieurs avantages clés:
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!