Encoding.GetString Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.