Encoding.GetString Méthode

Définition

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

Surcharges

Nom Description
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é dans une chaîne.

GetString(Byte*, Int32)

En cas de substitution dans une classe dérivée, décode un nombre spécifié d’octets à partir d’une adresse spécifiée dans une chaîne.

GetString(Byte[])

En cas de substitution dans une classe dérivée, décode tous les octets du tableau d’octets spécifié dans une 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 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é dans une chaîne.

public:
 virtual System::String ^ GetString(cli::array <System::Byte> ^ bytes, int index, int count);
public virtual string GetString(byte[] bytes, int index, int count);
abstract member GetString : byte[] * int * int -> string
override this.GetString : byte[] * int * int -> string
Public Overridable Function GetString (bytes As Byte(), index As Integer, count As Integer) As String

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 qui contient les résultats du décodage de la séquence spécifiée d’octets.

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 en bytes.

Un secours s’est produit (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 UTF-8 à partir d’un fichier binaire représenté par un FileStream objet. Pour les fichiers inférieurs à 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.

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.
Imports System.IO
Imports System.Text

Module Example
   Const MAX_BUFFER_SIZE As Integer = 2048
   
   Dim enc8 As Encoding = Encoding.UTF8
   Dim bytes(MAX_BUFFER_SIZE -1) As Byte
      
   Public Sub Main()
      Dim fStream As New FileStream(".\Utf8Example.txt", FileMode.Open)
      Dim contents As String = Nothing
      
      ' If file size is small, read in a single operation.
      If fStream.Length <= MAX_BUFFER_SIZE Then
         
         Dim bytesRead As Integer = 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)
      End If
      fStream.Close()
      Console.WriteLine(contents)
   End Sub   

    Private Function ReadFromBuffer(fStream As FileStream) As String
        Dim bytes(MAX_BUFFER_SIZE) As Byte
        Dim output As String = String.Empty
        Dim decoder8 As Decoder = enc8.GetDecoder()
      
        Do While fStream.Position < fStream.Length
           Dim nBytes As Integer = fStream.Read(bytes, 0, bytes.Length)
           Dim nChars As Integer = decoder8.GetCharCount(bytes, 0, nBytes)
           Dim chars(nChars - 1) As Char
           nChars = decoder8.GetChars(bytes, 0, nBytes, chars, 0)
           output += New String(chars, 0, nChars)                                                     
        Loop
        Return output
    End Function
End Module
' 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é UTF-8 nommé Utf8Example.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 sous forme de blocs séquentiels (par exemple, les données lues à partir d'un flux) ou si la quantité de données est si importante qu'elle doit être divisée en blocs plus petits, vous devez utiliser la méthode Decoder ou la méthode Encoder fournie, respectivement, par la méthode GetDecoder ou la méthode GetEncoder d'une classe dérivée.

Consultez la section Remarques de la Encoding.GetChars rubrique de référence pour une discussion sur les techniques et considérations de décodage.

Voir aussi

S’applique à

GetString(Byte*, Int32)

Important

Cette API n’est pas conforme CLS.

En cas de substitution dans une classe dérivée, décode un nombre spécifié d’octets à partir d’une adresse spécifiée dans une chaîne.

public:
 System::String ^ GetString(System::Byte* bytes, int byteCount);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
public string GetString(byte* bytes, int byteCount);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
[System.Runtime.InteropServices.ComVisible(false)]
public string GetString(byte* bytes, int byteCount);
[System.CLSCompliant(false)]
public string GetString(byte* bytes, int byteCount);
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
member this.GetString : nativeptr<byte> * int -> string
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.GetString : nativeptr<byte> * int -> string
[<System.CLSCompliant(false)>]
member this.GetString : nativeptr<byte> * int -> string

Paramètres

bytes
Byte*

Pointeur vers un tableau d’octets.

byteCount
Int32

Nombre d’octets à décoder.

Retours

Chaîne qui contient les résultats du décodage de la séquence spécifiée d’octets.

Attributs

Exceptions

bytes est un pointeur Null.

byteCount est inférieur à zéro.

Un secours s’est produit (voir Character Encoding in .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 disposez d’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 les blocs séquentiels (par exemple, les données lues à partir d’un flux) ou si la quantité de données est si importante qu’elle doit être divisée en blocs plus petits, vous devez utiliser l’objet Decoder retourné par la GetDecoder méthode d’une classe dérivée.

Consultez la section Remarques de la Encoding.GetChars rubrique de référence pour une discussion sur les techniques et considérations de décodage.

Notez que le comportement précis de la GetString méthode pour une implémentation particulière Encoding 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 l’encodage Character dans .NET rubrique.

Voir aussi

S’applique à

GetString(Byte[])

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

public:
 virtual System::String ^ GetString(cli::array <System::Byte> ^ bytes);
public virtual string GetString(byte[] bytes);
abstract member GetString : byte[] -> string
override this.GetString : byte[] -> string
Public Overridable Function GetString (bytes As Byte()) As String

Paramètres

bytes
Byte[]

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

Retours

Chaîne qui contient les résultats du décodage de la séquence spécifiée d’octets.

Exceptions

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

bytes a la valeur null.

Un secours s’est produit (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 UTF-8 à partir d’un fichier binaire représenté par un FileStream objet. Pour les fichiers inférieurs à 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.

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.
Imports System.IO
Imports System.Text

Module Example
   Const MAX_BUFFER_SIZE As Integer = 2048
   
   Dim enc8 As Encoding = Encoding.UTF8
      
   Public Sub Main()
      Dim fStream As New FileStream(".\Utf8Example.txt", FileMode.Open)
      Dim contents As String = Nothing
      
      ' If file size is small, read in a single operation.
      If fStream.Length <= MAX_BUFFER_SIZE Then
         Dim bytes(CInt(fStream.Length) - 1) As Byte
         fStream.Read(bytes, 0, bytes.Length)
         contents = enc8.GetString(bytes)
      ' If file size exceeds buffer size, perform multiple reads.
      Else
         contents = ReadFromBuffer(fStream)
      End If
      fStream.Close()
      Console.WriteLine(contents)
   End Sub   

    Private Function ReadFromBuffer(fStream As FileStream) As String
        Dim bytes(MAX_BUFFER_SIZE) As Byte
        Dim output As String = String.Empty
        Dim decoder8 As Decoder = enc8.GetDecoder()
      
        Do While fStream.Position < fStream.Length
           Dim nBytes As Integer = fStream.Read(bytes, 0, bytes.Length)
           Dim nChars As Integer = decoder8.GetCharCount(bytes, 0, nBytes)
           Dim chars(nChars - 1) As Char
           nChars = decoder8.GetChars(bytes, 0, nBytes, chars, 0)
           output += New String(chars, 0, nChars)                                                     
        Loop
        Return output
    End Function
End Module
' 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é UTF-8 nommé Utf8Example.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 les blocs séquentiels (par exemple, les données lues à partir d’un flux) ou si la quantité de données est si importante qu’elle doit être divisée en blocs plus petits, vous devez utiliser l’objet Decoder retourné par la GetDecoder méthode d’une classe dérivée.

Consultez la section Remarques de la Encoding.GetChars rubrique de référence pour une discussion sur les techniques et considérations de décodage.

Notez que le comportement précis de la GetString méthode pour une implémentation particulière Encoding 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 l’encodage Character dans .NET rubrique.

Voir aussi

S’applique à

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 dans une chaîne.

public:
 System::String ^ GetString(ReadOnlySpan<System::Byte> bytes);
public string GetString(ReadOnlySpan<byte> bytes);
member this.GetString : ReadOnlySpan<byte> -> string
Public Function GetString (bytes As ReadOnlySpan(Of Byte)) As String

Paramètres

bytes
ReadOnlySpan<Byte>

Étendue d’octet en lecture seule pour décoder en chaîne Unicode.

Retours

Chaîne qui contient 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 les blocs séquentiels (par exemple, les données lues à partir d’un flux) ou si la quantité de données est si importante qu’elle doit être divisée en blocs plus petits, vous devez utiliser l’objet Decoder retourné par la GetDecoder méthode d’une classe dérivée.

Consultez la section Remarques de la Encoding.GetChars rubrique de référence pour une discussion sur les techniques et considérations de décodage.

Notez que le comportement précis de la GetString méthode pour une implémentation particulière Encoding 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 l’encodage Character dans .NET rubrique.

S’applique à