Encoding.GetString Metódus

Definíció

Ha felülbírál egy származtatott osztályban, bájtok sorozatát sztringgé dekódolja.

Túlterhelések

Name Description
GetString(Byte[])

Származtatott osztályban felülbírálva a megadott bájttömb összes bájtját sztringgé alakítja.

GetString(ReadOnlySpan<Byte>)

Származtatott osztályban felülbírálva a megadott bájttartomány összes bájtját sztringgé alakítja.

GetString(Byte*, Int32)

Ha egy származtatott osztályban felülbírál, egy megadott címtől kezdődően megadott számú bájtot kódol sztringgé.

GetString(Byte[], Int32, Int32)

Ha egy származtatott osztályban felülbírál, a megadott bájttömbből származó bájtok sorozatát sztringgé dekódolja.

GetString(Byte[])

Forrás:
Encoding.cs
Forrás:
Encoding.cs
Forrás:
Encoding.cs
Forrás:
Encoding.cs
Forrás:
Encoding.cs

Származtatott osztályban felülbírálva a megadott bájttömb összes bájtját sztringgé alakítja.

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éterek

bytes
Byte[]

A dekódolni kívánt bájtok sorozatát tartalmazó bájttömb.

Válaszok

Egy sztring, amely a megadott bájtsorozat dekódolásának eredményeit tartalmazza.

Kivételek

A bájttömb érvénytelen Unicode-kódpontokat tartalmaz.

bytes az null.

Hiba történt (további információ: Acharacter kódolása a .NET)

-és-

DecoderFallback DecoderExceptionFallbackértékre van állítva.

Példák

Az alábbi példa egy UTF-8 kódolt sztringet olvas be egy objektum által FileStream képviselt bináris fájlból. A 2048 bájtnál kisebb fájlok esetében a teljes fájl tartalmát beolvassa egy bájttömbbe, és meghívja a GetString(Byte[]) metódust a dekódolás végrehajtására. Nagyobb fájlok esetén egyszerre 2048 bájtot olvas be egy bájttömbbe, meghívja a Decoder.GetCharCount(Byte[], Int32, Int32) metódust annak meghatározására, hogy hány karakter található a tömbben, majd meghívja a Decoder.GetChars(Byte[], Int32, Int32, Char[], Int32) metódust a dekódolás végrehajtásához.

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.

A példa a következő szöveget használja, amelyet egy Utf8Example.txtnevű UTF-8 kódolt fájlba kell menteni.

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.

Megjegyzések

Ha az átalakítandó adatok csak szekvenciális blokkokban (például adatfolyamból beolvasott adatokban) érhetők el, vagy ha az adatmennyiség olyan nagy, hogy kisebb blokkokra kell osztani, akkor a Decoder származtatott osztály metódusa által GetDecoder visszaadott objektumot kell használnia.

A dekódolási technikákról és szempontokról a Encoding.GetChars referenciatéma Megjegyzések szakaszában olvashat.

Vegye figyelembe, hogy egy GetString adott Encoding implementáció metódusának pontos viselkedése az objektumhoz Encoding definiált tartalék stratégiától függ. További információt a Karakterkódolás .NET témakör "Tartalék stratégia kiválasztása" című szakaszában talál.

Lásd még

A következőre érvényes:

GetString(ReadOnlySpan<Byte>)

Forrás:
Encoding.cs
Forrás:
Encoding.cs
Forrás:
Encoding.cs
Forrás:
Encoding.cs
Forrás:
Encoding.cs

Származtatott osztályban felülbírálva a megadott bájttartomány összes bájtját sztringgé alakítja.

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éterek

bytes
ReadOnlySpan<Byte>

Írásvédett bájttartomány Unicode-sztringre való dekódolásához.

Válaszok

Egy sztring, amely a megadott írásvédett tartományból származó dekódolt bájtokat tartalmazza.

Megjegyzések

A GetString módszer célja a teljesítmény optimalizálása. Felügyelt bájttömb létrehozása és dekódolása helyett ezt a metódust úgy hívhatja meg, hogy nem kell köztes objektumokat létrehoznia.

Ha az átalakítandó adatok csak szekvenciális blokkokban (például adatfolyamból beolvasott adatokban) érhetők el, vagy ha az adatmennyiség olyan nagy, hogy kisebb blokkokra kell osztani, akkor a Decoder származtatott osztály metódusa által GetDecoder visszaadott objektumot kell használnia.

A dekódolási technikákról és szempontokról a Encoding.GetChars referenciatéma Megjegyzések szakaszában olvashat.

Vegye figyelembe, hogy egy GetString adott Encoding implementáció metódusának pontos viselkedése az objektumhoz Encoding definiált tartalék stratégiától függ. További információt a Karakterkódolás .NET témakör "Tartalék stratégia kiválasztása" című szakaszában talál.

A következőre érvényes:

GetString(Byte*, Int32)

Forrás:
Encoding.cs
Forrás:
Encoding.cs
Forrás:
Encoding.cs
Forrás:
Encoding.cs
Forrás:
Encoding.cs

Fontos

Ez az API nem CLS-kompatibilis.

Ha egy származtatott osztályban felülbírál, egy megadott címtől kezdődően megadott számú bájtot kódol sztringgé.

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éterek

bytes
Byte*

Mutató egy bájttömbhöz.

byteCount
Int32

A dekódolni kívánt bájtok száma.

Válaszok

Egy sztring, amely a megadott bájtsorozat dekódolásának eredményeit tartalmazza.

Attribútumok

Kivételek

bytes null mutató.

byteCount kisebb, mint nulla.

Hiba történt (a teljes magyarázatért tekintse meg Character-kódolást a .NET)

-és-

DecoderFallback DecoderExceptionFallbackértékre van állítva.

Megjegyzések

A GetString módszer úgy lett kialakítva, hogy optimalizálja a teljesítményt, ha natív mutatóval rendelkezik egy bájttömbhöz. Felügyelt bájttömb létrehozása és dekódolása helyett ezt a metódust úgy hívhatja meg, hogy nem kell köztes objektumokat létrehoznia.

Ha az átalakítandó adatok csak szekvenciális blokkokban (például adatfolyamból beolvasott adatokban) érhetők el, vagy ha az adatmennyiség olyan nagy, hogy kisebb blokkokra kell osztani, akkor a Decoder származtatott osztály metódusa által GetDecoder visszaadott objektumot kell használnia.

A dekódolási technikákról és szempontokról a Encoding.GetChars referenciatéma Megjegyzések szakaszában olvashat.

Vegye figyelembe, hogy egy GetString adott Encoding implementáció metódusának pontos viselkedése az objektumhoz Encoding definiált tartalék stratégiától függ. További információt a Karakterkódolás .NET témakör "Tartalék stratégia kiválasztása" című szakaszában talál.

Lásd még

A következőre érvényes:

GetString(Byte[], Int32, Int32)

Forrás:
Encoding.cs
Forrás:
Encoding.cs
Forrás:
Encoding.cs
Forrás:
Encoding.cs
Forrás:
Encoding.cs

Ha egy származtatott osztályban felülbírál, a megadott bájttömbből származó bájtok sorozatát sztringgé dekódolja.

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éterek

bytes
Byte[]

A dekódolni kívánt bájtok sorozatát tartalmazó bájttömb.

index
Int32

A dekódolni kívánt első bájt indexe.

count
Int32

A dekódolni kívánt bájtok száma.

Válaszok

Egy sztring, amely a megadott bájtsorozat dekódolásának eredményeit tartalmazza.

Kivételek

A bájttömb érvénytelen Unicode-kódpontokat tartalmaz.

bytes az null.

index vagy count kisebb, mint nulla.

-vagy-

index és count ne jelölje az érvényes tartományt a következőben bytes: .

Hiba történt (további információ: Acharacter kódolása a .NET)

-és-

DecoderFallback DecoderExceptionFallbackértékre van állítva.

Példák

Az alábbi példa egy UTF-8 kódolt sztringet olvas be egy objektum által FileStream képviselt bináris fájlból. A 2048 bájtnál kisebb fájlok esetében a teljes fájl tartalmát beolvassa egy bájttömbbe, és meghívja a GetString(Byte[], Int32, Int32) metódust a dekódolás végrehajtására. Nagyobb fájlok esetén egyszerre 2048 bájtot olvas be egy bájttömbbe, meghívja a Decoder.GetCharCount(Byte[], Int32, Int32) metódust annak meghatározására, hogy hány karakter található a tömbben, majd meghívja a Decoder.GetChars(Byte[], Int32, Int32, Char[], Int32) metódust a dekódolás végrehajtásához.

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.

A példa a következő szöveget használja, amelyet egy Utf8Example.txtnevű UTF-8 kódolt fájlba kell menteni.

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.

Megjegyzések

Ha az átalakítandó adatok csak szekvenciális blokkokban (például adatfolyamból beolvasott adatokban) érhetők el, vagy ha az adatmennyiség olyan nagy, hogy kisebb blokkokra kell osztani, akkor a Decoder metódus vagy a származtatott osztály Encoder metódusa által biztosított GetDecoder vagy GetEncoder kell használnia.

A dekódolási technikákról és szempontokról a Encoding.GetChars referenciatéma Megjegyzések szakaszában olvashat.

Lásd még

A következőre érvényes: