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.

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

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é en 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 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 à

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.

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'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 à

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.

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)]
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)>]
[<System.Security.SecurityCritical>]
member this.GetString : nativeptr<byte> * int -> string
[<System.CLSCompliant(false)>]
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

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 à

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.

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

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é en 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 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 à