Maison > développement back-end > C++ > Comment puis-je convertir les chaînes en tableaux d'octets dans .NET sans codage?

Comment puis-je convertir les chaînes en tableaux d'octets dans .NET sans codage?

Barbara Streisand
Libérer: 2025-02-01 05:21:09
original
564 Les gens l'ont consulté

How Can I Convert Strings to Byte Arrays in .NET without Encoding?

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;
}
Copier après la connexion

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);
}
Copier après la connexion

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:

  • Encoding Agnostic: Pas besoin de spécifier un codage; Les octets représentent directement les caractères Unicode.
  • Gestion des erreurs robuste: gère les caractères non valides sans erreurs; Les octets sont traités comme des données brutes.
  • Efficacité intra-système: Idéal pour la communication du même système, maximisation de l'efficacité et prévenir les écarts de codage.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal