Lire en anglais

Partager via


Encoding.GetString Méthode

Définition

En cas de substitution dans une classe dérivée, décode une séquence d'octets en chaîne.

Surcharges

GetString(Byte[])

En cas de substitution dans une classe dérivée, décode tous les octets du tableau d'octets spécifié en chaîne.

GetString(ReadOnlySpan<Byte>)

En cas de substitution dans une classe dérivée, décode tous les octets de l’étendue d'octets spécifiée en chaîne.

GetString(Byte*, Int32)

En cas de substitution dans une classe dérivée, décode un nombre d'octets spécifié en commençant à une adresse spécifiée dans une chaîne.

GetString(Byte[], Int32, Int32)

En cas de substitution dans une classe dérivée, décode une séquence d'octets du tableau d'octets spécifié en chaîne.

GetString(Byte[])

Source:
Encoding.cs
Source:
Encoding.cs
Source:
Encoding.cs

En cas de substitution dans une classe dérivée, décode tous les octets du tableau d'octets spécifié en chaîne.

C#
public virtual string GetString (byte[] bytes);

Paramètres

bytes
Byte[]

Tableau d'octets contenant la séquence d'octets à décoder.

Retours

Chaîne contenant les résultats du décodage de la séquence d'octets spécifiée.

Exceptions

Le tableau d'octets contient des points de code Unicode non valides.

bytes a la valeur null.

Une action de secours s’est produite (pour plus d’informations, consultez Encodage de caractères dans .NET)

-et-

DecoderFallback a la valeur DecoderExceptionFallback.

Exemples

L’exemple suivant lit une chaîne encodée en UTF-8 à partir d’un fichier binaire représenté par un FileStream objet. Pour les fichiers dont la taille est inférieure à 2 048 octets, il lit le contenu du fichier entier dans un tableau d’octets et appelle la GetString(Byte[]) méthode pour effectuer le décodage. Pour les fichiers plus volumineux, il lit 2 048 octets à la fois dans un tableau d’octets, appelle la Decoder.GetCharCount(Byte[], Int32, Int32) méthode pour déterminer le nombre de caractères contenus dans le tableau, puis appelle la Decoder.GetChars(Byte[], Int32, Int32, Char[], Int32) méthode pour effectuer le décodage.

C#
using System;
using System.IO;
using System.Text;

public class Example
{
   const int MAX_BUFFER_SIZE = 2048;
   static Encoding enc8 = Encoding.UTF8;

   public static void Main()
   {
      FileStream fStream = new FileStream(@".\Utf8Example.txt", FileMode.Open);
      string contents = null;
      
      // If file size is small, read in a single operation.
      if (fStream.Length <= MAX_BUFFER_SIZE) {
         Byte[] bytes = new Byte[fStream.Length];
         fStream.Read(bytes, 0, bytes.Length);
         contents = enc8.GetString(bytes);
      }
      // If file size exceeds buffer size, perform multiple reads.
      else {
         contents = ReadFromBuffer(fStream);
      }
      fStream.Close();
      Console.WriteLine(contents);
   }

   private static string ReadFromBuffer(FileStream fStream)
   {
        Byte[] bytes = new Byte[MAX_BUFFER_SIZE];
        string output = String.Empty;
        Decoder decoder8 = enc8.GetDecoder();
      
        while (fStream.Position < fStream.Length) {
           int nBytes = fStream.Read(bytes, 0, bytes.Length);
           int nChars = decoder8.GetCharCount(bytes, 0, nBytes);
           char[] chars = new char[nChars];
           nChars = decoder8.GetChars(bytes, 0, nBytes, chars, 0);
           output += new String(chars, 0, nChars);                                                     
        }
        return output;
    }
}
// The example displays the following output:
//     This is a UTF-8-encoded file that contains primarily Latin text, although it
//     does list the first twelve letters of the Russian (Cyrillic) alphabet:
//     
//     А б в г д е ё ж з и й к
//     
//     The goal is to save this file, then open and decode it as a binary stream.

L’exemple utilise le texte suivant, qui doit être enregistré dans un fichier encodé en UTF-8 nommé Utf8Example.txt.

txt
This is a UTF-8-encoded file that contains primarily Latin text, although it
does list the first twelve letters of the Russian (Cyrillic) alphabet:

А б в г д е ё ж з и й к

The goal is to save this file, then open and decode it as a binary stream.

Remarques

Si les données à convertir sont disponibles uniquement dans des blocs séquentiels (par exemple, les données lues à partir d’un flux) ou si la quantité de données est tellement importante qu’elles doivent être divisées en blocs plus petits, vous devez utiliser l' Decoder objet retourné par la GetDecoder méthode d’une classe dérivée.

Consultez la section Notes de la Encoding.GetChars rubrique de référence pour en savoir plus sur les techniques et les considérations relatives au décodage.

Notez que le comportement précis de la GetString méthode pour une Encoding implémentation particulière dépend de la stratégie de secours définie pour cet Encoding objet. Pour plus d’informations, consultez la section « choix d’une stratégie de secours » de la rubrique encodage de caractères dans .net .

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

GetString(ReadOnlySpan<Byte>)

Source:
Encoding.cs
Source:
Encoding.cs
Source:
Encoding.cs

En cas de substitution dans une classe dérivée, décode tous les octets de l’étendue d'octets spécifiée en chaîne.

C#
public string GetString (ReadOnlySpan<byte> bytes);

Paramètres

bytes
ReadOnlySpan<Byte>

Étendue d'octets en lecture seule à décoder en chaîne Unicode.

Retours

Chaîne contenant les octets décodés de l’étendue en lecture seule fournie.

Remarques

La GetString méthode est conçue pour optimiser les performances. Au lieu de créer un tableau d’octets managé, puis de le décoder, vous pouvez appeler cette méthode sans avoir à créer d’objets intermédiaires.

Si les données à convertir sont disponibles uniquement dans des blocs séquentiels (par exemple, les données lues à partir d’un flux) ou si la quantité de données est tellement importante qu’elles doivent être divisées en blocs plus petits, vous devez utiliser l' Decoder objet retourné par la GetDecoder méthode d’une classe dérivée.

Consultez la section Notes de la Encoding.GetChars rubrique de référence pour en savoir plus sur les techniques et les considérations relatives au décodage.

Notez que le comportement précis de la GetString méthode pour une Encoding implémentation particulière dépend de la stratégie de secours définie pour cet Encoding objet. Pour plus d’informations, consultez la section « choix d’une stratégie de secours » de la rubrique encodage de caractères dans .net .

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Standard 2.1

GetString(Byte*, Int32)

Source:
Encoding.cs
Source:
Encoding.cs
Source:
Encoding.cs

Important

Cette API n’est pas conforme CLS.

En cas de substitution dans une classe dérivée, décode un nombre d'octets spécifié en commençant à une adresse spécifiée dans une chaîne.

C#
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
public string GetString (byte* bytes, int byteCount);
C#
[System.CLSCompliant(false)]
public string GetString (byte* bytes, int byteCount);
C#
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
[System.Runtime.InteropServices.ComVisible(false)]
public string GetString (byte* bytes, int byteCount);

Paramètres

bytes
Byte*

Pointeur vers un tableau d'octets.

byteCount
Int32

Nombre d'octets à décoder.

Retours

Chaîne contenant les résultats du décodage de la séquence d'octets spécifiée.

Attributs

Exceptions

bytes est un pointeur Null.

byteCount est inférieur à zéro.

Une procédure de secours a eu lieu (consultez Encodage de caractères dans .NET ) pour obtenir une explication complète

-et-

DecoderFallback a la valeur DecoderExceptionFallback.

Remarques

La GetString méthode est conçue pour optimiser les performances lorsque vous avez un pointeur natif vers un tableau d’octets. Au lieu de créer un tableau d’octets managé, puis de le décoder, vous pouvez appeler cette méthode sans avoir à créer d’objets intermédiaires.

Si les données à convertir sont disponibles uniquement dans des blocs séquentiels (par exemple, les données lues à partir d’un flux) ou si la quantité de données est tellement importante qu’elles doivent être divisées en blocs plus petits, vous devez utiliser l' Decoder objet retourné par la GetDecoder méthode d’une classe dérivée.

Consultez la section Notes de la Encoding.GetChars rubrique de référence pour en savoir plus sur les techniques et les considérations relatives au décodage.

Notez que le comportement précis de la GetString méthode pour une Encoding implémentation particulière dépend de la stratégie de secours définie pour cet Encoding objet. Pour plus d’informations, consultez la section « choix d’une stratégie de secours » de la rubrique encodage de caractères dans .net .

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

GetString(Byte[], Int32, Int32)

Source:
Encoding.cs
Source:
Encoding.cs
Source:
Encoding.cs

En cas de substitution dans une classe dérivée, décode une séquence d'octets du tableau d'octets spécifié en chaîne.

C#
public virtual string GetString (byte[] bytes, int index, int count);

Paramètres

bytes
Byte[]

Tableau d'octets contenant la séquence d'octets à décoder.

index
Int32

Index du premier octet à décoder.

count
Int32

Nombre d'octets à décoder.

Retours

Chaîne contenant les résultats du décodage de la séquence d'octets spécifiée.

Exceptions

Le tableau d'octets contient des points de code Unicode non valides.

bytes a la valeur null.

index ou count est inférieur à zéro.

- ou -

index et count ne désignent pas une plage valide dans bytes.

Un secours s’est produit (pour plus d’informations, consultez Codage de caractères dans .NET)

-et-

DecoderFallback a la valeur DecoderExceptionFallback.

Exemples

L’exemple suivant lit une chaîne encodée en UTF-8 à partir d’un fichier binaire représenté par un FileStream objet. Pour les fichiers dont la taille est inférieure à 2 048 octets, il lit le contenu du fichier entier dans un tableau d’octets et appelle la GetString(Byte[], Int32, Int32) méthode pour effectuer le décodage. Pour les fichiers plus volumineux, il lit 2 048 octets à la fois dans un tableau d’octets, appelle la Decoder.GetCharCount(Byte[], Int32, Int32) méthode pour déterminer le nombre de caractères contenus dans le tableau, puis appelle la Decoder.GetChars(Byte[], Int32, Int32, Char[], Int32) méthode pour effectuer le décodage.

C#
using System;
using System.IO;
using System.Text;

public class Example
{
   const int MAX_BUFFER_SIZE = 2048;
   static Encoding enc8 = Encoding.UTF8;
   static byte[] bytes = new byte[MAX_BUFFER_SIZE]; 

   public static void Main()
   {
      FileStream fStream = new FileStream(@".\Utf8Example.txt", FileMode.Open);
      string contents = null;
      
      // If file size is small, read in a single operation.
      if (fStream.Length <= MAX_BUFFER_SIZE) {
         int bytesRead = fStream.Read(bytes, 0, bytes.Length);
         contents = enc8.GetString(bytes, 0, bytesRead);
      }   
      // If file size exceeds buffer size, perform multiple reads.
      else {
         contents = ReadFromBuffer(fStream);
      }
      fStream.Close();
      Console.WriteLine(contents);
   }

    private static string ReadFromBuffer(FileStream fStream)
    {
        string output = String.Empty;
        Decoder decoder8 = enc8.GetDecoder();
      
        while (fStream.Position < fStream.Length) {
           int nBytes = fStream.Read(bytes, 0, bytes.Length);
           int nChars = decoder8.GetCharCount(bytes, 0, nBytes);
           char[] chars = new char[nChars];
           nChars = decoder8.GetChars(bytes, 0, nBytes, chars, 0);
           output += new String(chars, 0, nChars);                                                     
        }
        return output;
    }   
}
// The example displays the following output:
//     This is a UTF-8-encoded file that contains primarily Latin text, although it
//     does list the first twelve letters of the Russian (Cyrillic) alphabet:
//     
//     А б в г д е ё ж з и й к
//     
//     The goal is to save this file, then open and decode it as a binary stream.

L’exemple utilise le texte suivant, qui doit être enregistré dans un fichier encodé en UTF-8 nommé Utf8Example.txt.

txt
This is a UTF-8-encoded file that contains primarily Latin text, although it
does list the first twelve letters of the Russian (Cyrillic) alphabet:

А б в г д е ё ж з и й к

The goal is to save this file, then open and decode it as a binary stream.

Remarques

Si les données à convertir sont disponibles uniquement dans des blocs séquentiels (par exemple, les données lues à partir d’un flux) ou si la quantité de données est tellement importante qu’elles doivent être divisées en blocs plus petits, vous devez utiliser le Decoder ou le Encoder fourni par la GetDecoder méthode ou la GetEncoder méthode, respectivement, d’une classe dérivée.

Consultez la section Notes de la Encoding.GetChars rubrique de référence pour en savoir plus sur les techniques et les considérations relatives au décodage.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0