Encoding.GetEncoding Encoding.GetEncoding Encoding.GetEncoding Encoding.GetEncoding Method

Definition

Gibt eine Codierung für die angegebene Codepage zurück.Returns an encoding for the specified code page.

Überlädt

GetEncoding(Int32) GetEncoding(Int32) GetEncoding(Int32) GetEncoding(Int32)

Gibt die dem angegebenen Codepagebezeichner zugeordnete Codierung zurück.Returns the encoding associated with the specified code page identifier.

GetEncoding(String) GetEncoding(String) GetEncoding(String) GetEncoding(String)

Gibt die dem angegebenen Codepagenamen zugeordnete Codierung zurück.Returns the encoding associated with the specified code page name.

GetEncoding(Int32, EncoderFallback, DecoderFallback) GetEncoding(Int32, EncoderFallback, DecoderFallback) GetEncoding(Int32, EncoderFallback, DecoderFallback)

Gibt die dem angegebenen Codepagebezeichner zugeordnete Codierung zurück.Returns the encoding associated with the specified code page identifier. Parameter geben einen Fehlerhandler für Zeichen an, die nicht codiert werden können, und für Bytefolgen, die nicht decodiert werden können.Parameters specify an error handler for characters that cannot be encoded and byte sequences that cannot be decoded.

GetEncoding(String, EncoderFallback, DecoderFallback) GetEncoding(String, EncoderFallback, DecoderFallback) GetEncoding(String, EncoderFallback, DecoderFallback)

Gibt die dem angegebenen Codepagenamen zugeordnete Codierung zurück.Returns the encoding associated with the specified code page name. Parameter geben einen Fehlerhandler für Zeichen an, die nicht codiert werden können, und für Bytefolgen, die nicht decodiert werden können.Parameters specify an error handler for characters that cannot be encoded and byte sequences that cannot be decoded.

GetEncoding(Int32) GetEncoding(Int32) GetEncoding(Int32) GetEncoding(Int32)

Gibt die dem angegebenen Codepagebezeichner zugeordnete Codierung zurück.Returns the encoding associated with the specified code page identifier.

public:
 static System::Text::Encoding ^ GetEncoding(int codepage);
public static System.Text.Encoding GetEncoding (int codepage);
static member GetEncoding : int -> System.Text.Encoding
Public Shared Function GetEncoding (codepage As Integer) As Encoding

Parameter

codepage
Int32 Int32 Int32 Int32

Der Codepagebezeichner der bevorzugten Codierung.The code page identifier of the preferred encoding. Mögliche Werte sind in der Codepage-Spalte der Tabelle aufgeführt, die im Thema zur Encoding-Klasse angezeigt wird.Possible values are listed in the Code Page column of the table that appears in the Encoding class topic.

- oder --or- 0 (null), um die Standardcodierung zu verwenden.0 (zero), to use the default encoding.

Gibt zurück

Die Codierung, die der angegebenen Codepage zugeordnet ist.The encoding that is associated with the specified code page.

Ausnahmen

codepage ist kleiner als 0 (null) oder größer als 65535.codepage is less than zero or greater than 65535.

codepage wird von der zugrunde liegenden Plattform nicht unterstützt.codepage is not supported by the underlying platform.

codepage wird von der zugrunde liegenden Plattform nicht unterstützt.codepage is not supported by the underlying platform.

Beispiele

Im folgenden Beispiel werden zwei Instanzen derselben Codierung abgerufen (eine nach Codepage und eine andere nach Namen) und ihre Gleichheit überprüft.The following example gets two instances of the same encoding (one by code page and another by name), and checks their equality.

using namespace System;
using namespace System::Text;
int main()
{
   
   // Get a UTF-32 encoding by codepage.
   Encoding^ e1 = Encoding::GetEncoding( 12000 );
   
   // Get a UTF-32 encoding by name.
   Encoding^ e2 = Encoding::GetEncoding( "utf-32" );
   
   // Check their equality.
   Console::WriteLine( "e1 equals e2? {0}", e1->Equals( e2 ) );
}

/* 
This code produces the following output.

e1 equals e2? True

*/
using System;
using System.Text;

public class SamplesEncoding  {

   public static void Main()  {

      // Get a UTF-32 encoding by codepage.
      Encoding e1 = Encoding.GetEncoding( 12000 );

      // Get a UTF-32 encoding by name.
      Encoding e2 = Encoding.GetEncoding( "utf-32" );

      // Check their equality.
      Console.WriteLine( "e1 equals e2? {0}", e1.Equals( e2 ) );

   }

}


/* 
This code produces the following output.

e1 equals e2? True

*/

Imports System.Text

Public Class SamplesEncoding   

   Public Shared Sub Main()

      ' Get a UTF-32 encoding by codepage.
      Dim e1 As Encoding = Encoding.GetEncoding(12000)

      ' Get a UTF-32 encoding by name.
      Dim e2 As Encoding = Encoding.GetEncoding("utf-32")

      ' Check their equality.
      Console.WriteLine("e1 equals e2? {0}", e1.Equals(e2))

   End Sub

End Class


'This code produces the following output.
'
'e1 equals e2? True

Hinweise

Der Fall Back Handler hängt vom Codierungstyp von codepageab.The fallback handler depends on the encoding type of codepage. Wenn codepage eine Codepage oder eine Doppelbyte-Zeichensatz Codierung (DBCS) ist, wird ein Fall Back-Handler mit einer optimalen Zeichenfolge verwendet.If codepage is a code page or double-byte character set (DBCS) encoding, a best-fit fallback handler is used. Andernfalls wird ein Ersatz Fall Back Handler verwendet.Otherwise, a replacement fallback handler is used. Diese Fall Back Handler sind für Ihre APP möglicherweise nicht geeignet.These fallback handlers may not be appropriate for your app. Um den Fall Back Handler anzugeben, der von der durch codepageangegebenen Codierung verwendet wird, können Sie die GetEncoding(Int32, EncoderFallback, DecoderFallback) -Überladung aufrufen.To specify the fallback handler used by the encoding specified by codepage, you can call the GetEncoding(Int32, EncoderFallback, DecoderFallback) overload.

Im .NET Framework basiert die GetEncoding -Methode auf der zugrunde liegenden Plattform, um die meisten Codepages zu unterstützen.In the .NET Framework, the GetEncoding method relies on the underlying platform to support most code pages. Allerdings unterstützt die .NET Framework nativ einige Codierungen.However, the .NET Framework natively supports some encodings. Eine Liste der Codepages finden Sie im Encoding Thema zur-Klasse.For a list of code pages, see the Encoding class topic. In .net Core gibt die GetEncoding -Methode die Codierungen zurück, die von .net Core unterstützt werden.In .NET Core, the GetEncoding method returns the encodings natively supported by .NET Core. Bei beiden .net-Implementierungen können Sie die GetEncodings -Methode zum Abrufen eines Arrays von EncodingInfo -Objekten, das Informationen zu allen verfügbaren Codierungen enthält, abrufen.On both .NET implementations, you can call the GetEncodings method to get an array of EncodingInfo objects that contains information about all available encodings.

Zusätzlich zu den Codierungen, die in .net Core nativ verfügbar sind oder auf einer bestimmten Platt Form Version der .NET Framework intrinsisch unterstützt werden, gibt GetEncoding die Methode alle zusätzlichen Codierungen zurück, die durch Registrieren eines -Elementsverfügbargemachtwerden.EncodingProvider -Objekt.In addition to the encodings that are natively available on .NET Core or that are intrinsically supported on a specific platform version of the .NET Framework, the GetEncoding method returns any additional encodings that are made available by registering an EncodingProvider object. Wenn dieselbe Codierung von mehreren EncodingProvider Objekten registriert wurde, gibt diese Methode die zuletzt registrierte zurück.If the same encoding has been registered by multiple EncodingProvider objects, this method returns the last one registered.

Sie können auch den Wert 0 für das codepage -Argument angeben.You can also supply a value of 0 for the codepage argument. Das genaue Verhalten hängt davon ab, ob Codierungen durch Registrieren eines EncodingProvider Objekts zur Verfügung gestellt wurden:Its precise behavior depends on whether any encodings have been made available by registering an EncodingProvider object:

  • Wenn mindestens ein Codierungs Anbieter registriert wurde, wird die Codierung des letzten registrierten Anbieters zurückgegeben, der die Rückgabe einer Codierung gewählt hat, wenn GetEncoding der Methode ein codepage Argument von 0 (null) überlassen wird.If one or more encoding providers have been registered, it returns the encoding of the last registered provider that has chosen to return a encoding when the GetEncoding method is passed a codepage argument of 0.

  • Wenn auf dem .NET Framework kein Codierungs Anbieter registriert wurde, wenn der CodePagesEncodingProvider der registrierte Codierungs Anbieter ist, oder wenn kein registrierter Codierungs Anbieter den codepage Wert 0 verarbeitet, wird die aktive Codepage des Betriebssystems zurückgegeben.On the .NET Framework, if no encoding provider has been registered, if the CodePagesEncodingProvider is the registered encoding provider, or if no registered encoding provider handles a codepage value of 0, it returns the operating system's active code page. Um die aktive Codepage auf Windows-Systemen zu ermitteln, müssen Sie die Windows GetACP- Funktion aus dem .NET Framework auf dem Windows-Desktop aufrufen.To determine the active code page on Windows systems, call the Windows GetACP function from the .NET Framework on the Windows desktop.

  • Wenn in .net Core kein Codierungs Anbieter registriert wurde oder wenn kein registrierter Codierungs Anbieter den codepage Wert 0 verarbeitet, wird der UTF8Encodingzurückgegeben.On .NET Core, if no encoding provider has been registered or if no registered encoding provider handles a codepage value of 0, it returns the UTF8Encoding.

Hinweis

Einige nicht unterstützte Codepages ArgumentException bewirken, dass eine ausgelöst wird, während NotSupportedExceptionandere eine auslösen.Some unsupported code pages cause an ArgumentException to be thrown, whereas others cause a NotSupportedException. Der Code muss daher alle Ausnahmen abfangen, die im Abschnitt "Ausnahmen" angegeben sind.Therefore, your code must catch all exceptions indicated in the Exceptions section.

Hinweis

Die ANSI-Codepages können sich auf verschiedenen Computern unterscheiden und können auf einem einzelnen Computer geändert werden, was zu Daten Beschädigungen führt.The ANSI code pages can be different on different computers and can change on a single computer, leading to data corruption. Wenn die aktive Codepage eine ANSI-Codepage ist, wird daher nicht empfohlen, Codierungs-und Decodierungs Daten mit Encoding.GetEncoding(0) der von zurückgegebenen Standard Codepage zu verwenden.For this reason, if the active code page is an ANSI code page, encoding and decoding data using the default code page returned by Encoding.GetEncoding(0) is not recommended. Um möglichst konsistente Ergebnisse zu erzielen, sollten Sie eine Unicode-Codierung, z. b. UTF-8 (Codepage 65001) oder UTF-16, anstelle einer bestimmten Codepage verwenden.For the most consistent results, you should use a Unicode encoding, such as UTF-8 (code page 65001) or UTF-16, instead of a specific code page.

GetEncodinggibt eine zwischengespeicherte-Instanz mit Standardeinstellungen zurück.GetEncoding returns a cached instance with default settings. Verwenden Sie die Konstruktoren abgeleiteter Klassen, um eine Instanz mit unterschiedlichen Einstellungen zu erhalten.You should use the constructors of derived classes to get an instance with different settings. Beispielsweise stellt die UTF32Encoding -Klasse einen Konstruktor bereit, mit dem Sie die Fehlererkennung aktivieren können.For example, the UTF32Encoding class provides a constructor that lets you enable error detection.

Siehe auch

GetEncoding(String) GetEncoding(String) GetEncoding(String) GetEncoding(String)

Gibt die dem angegebenen Codepagenamen zugeordnete Codierung zurück.Returns the encoding associated with the specified code page name.

public:
 static System::Text::Encoding ^ GetEncoding(System::String ^ name);
public static System.Text.Encoding GetEncoding (string name);
static member GetEncoding : string -> System.Text.Encoding
Public Shared Function GetEncoding (name As String) As Encoding

Parameter

name
String String String String

Der Codepagename der bevorzugten Codierung.The code page name of the preferred encoding. Jeder von der WebName-Eigenschaft zurückgegebene Wert ist gültig.Any value returned by the WebName property is valid. Mögliche Werte sind in der Name-Spalte der Tabelle aufgeführt, die im Thema zur Encoding-Klasse angezeigt wird.Possible values are listed in the Name column of the table that appears in the Encoding class topic.

Gibt zurück

Die der angegebenen Codepage zugeordnete Codierung.The encoding associated with the specified code page.

Ausnahmen

name ist kein gültiger Codepagename.name is not a valid code page name.

- oder --or- Die durch name angegebene Codepage wird von der zugrunde liegenden Plattform nicht unterstützt.The code page indicated by name is not supported by the underlying platform.

Beispiele

Im folgenden Beispiel werden zwei Instanzen derselben Codierung abgerufen (eine nach Codepage und eine andere nach Namen) und ihre Gleichheit überprüft.The following example gets two instances of the same encoding (one by code page and another by name), and checks their equality.

using namespace System;
using namespace System::Text;
int main()
{
   
   // Get a UTF-32 encoding by codepage.
   Encoding^ e1 = Encoding::GetEncoding( 12000 );
   
   // Get a UTF-32 encoding by name.
   Encoding^ e2 = Encoding::GetEncoding( "utf-32" );
   
   // Check their equality.
   Console::WriteLine( "e1 equals e2? {0}", e1->Equals( e2 ) );
}

/* 
This code produces the following output.

e1 equals e2? True

*/
using System;
using System.Text;

public class SamplesEncoding  {

   public static void Main()  {

      // Get a UTF-32 encoding by codepage.
      Encoding e1 = Encoding.GetEncoding( 12000 );

      // Get a UTF-32 encoding by name.
      Encoding e2 = Encoding.GetEncoding( "utf-32" );

      // Check their equality.
      Console.WriteLine( "e1 equals e2? {0}", e1.Equals( e2 ) );

   }

}


/* 
This code produces the following output.

e1 equals e2? True

*/

Imports System.Text

Public Class SamplesEncoding   

   Public Shared Sub Main()

      ' Get a UTF-32 encoding by codepage.
      Dim e1 As Encoding = Encoding.GetEncoding(12000)

      ' Get a UTF-32 encoding by name.
      Dim e2 As Encoding = Encoding.GetEncoding("utf-32")

      ' Check their equality.
      Console.WriteLine("e1 equals e2? {0}", e1.Equals(e2))

   End Sub

End Class


'This code produces the following output.
'
'e1 equals e2? True

Hinweise

Der Fall Back Handler hängt vom Codierungstyp von nameab.The fallback handler depends on the encoding type of name. Wenn name eine Codepage oder eine Doppelbyte-Zeichensatz Codierung (DBCS) ist, wird ein Fall Back-Handler mit einer optimalen Zeichenfolge verwendet.If name is a code page or double-byte character set (DBCS) encoding, a best-fit fallback handler is used. Andernfalls wird ein Ersatz Fall Back Handler verwendet.Otherwise, a replacement fallback handler is used. Diese Fall Back Handler sind für Ihre APP möglicherweise nicht geeignet.These fallback handlers may not be appropriate for your app. Um den Fall Back Handler anzugeben, der von der durch nameangegebenen Codierung verwendet wird, können Sie die GetEncoding(String, EncoderFallback, DecoderFallback) -Überladung aufrufen.To specify the fallback handler used by the encoding specified by name, you can call the GetEncoding(String, EncoderFallback, DecoderFallback) overload.

Im .NET Framework basiert die GetEncoding -Methode auf der zugrunde liegenden Plattform, um die meisten Codepages zu unterstützen.In the .NET Framework, the GetEncoding method relies on the underlying platform to support most code pages. Allerdings unterstützt die .NET Framework nativ einige Codierungen.However, the .NET Framework natively supports some encodings. Eine Liste der Codepages finden Sie im Encoding Thema zur-Klasse.For a list of code pages, see the Encoding class topic. In .net Core gibt die GetEncoding -Methode die Codierungen zurück, die von .net Core unterstützt werden.In .NET Core, the GetEncoding method returns the encodings natively supported by .NET Core. Bei beiden .net-Implementierungen können Sie die GetEncodings -Methode zum Abrufen eines Arrays von EncodingInfo -Objekten, das Informationen zu allen verfügbaren Codierungen enthält, abrufen.On both .NET implementations, you can call the GetEncodings method to get an array of EncodingInfo objects that contains information about all available encodings.

Zusätzlich zu den Codierungen, die in .net Core nativ verfügbar sind oder auf einer bestimmten Platt Form Version der .NET Framework intrinsisch unterstützt werden, gibt GetEncoding die Methode alle zusätzlichen Codierungen zurück, die durch Registrieren eines -Elementsverfügbargemachtwerden.EncodingProvider -Objekt.In addition to the encodings that are natively available on .NET Core or that are intrinsically supported on a specific platform version of the .NET Framework, the GetEncoding method returns any additional encodings that are made available by registering an EncodingProvider object. Wenn dieselbe Codierung von mehreren EncodingProvider Objekten registriert wurde, gibt diese Methode die zuletzt registrierte zurück.If the same encoding has been registered by multiple EncodingProvider objects, this method returns the last one registered.

Hinweis

Die ANSI-Codepages können sich auf verschiedenen Computern unterscheiden, oder Sie können für einen einzelnen Computer geändert werden, was zu Daten Beschädigungen führt.The ANSI code pages can be different on different computers, or can be changed for a single computer, leading to data corruption. Um möglichst konsistente Ergebnisse zu erzielen, sollten Sie Unicode verwenden, z. b. UTF-8 (Codepage 65001) oder UTF-16 anstelle einer bestimmten Codepage.For the most consistent results, you should use Unicode, such as UTF-8 (code page 65001) or UTF-16, instead of a specific code page.

GetEncodinggibt eine zwischengespeicherte-Instanz mit Standardeinstellungen zurück.GetEncoding returns a cached instance with default settings. Verwenden Sie die Konstruktoren abgeleiteter Klassen, um eine Instanz mit unterschiedlichen Einstellungen zu erhalten.You should use the constructors of derived classes to get an instance with different settings. Beispielsweise stellt die UTF32Encoding -Klasse einen Konstruktor bereit, mit dem Sie die Fehlererkennung aktivieren können.For example, the UTF32Encoding class provides a constructor that lets you enable error detection.

Siehe auch

GetEncoding(Int32, EncoderFallback, DecoderFallback) GetEncoding(Int32, EncoderFallback, DecoderFallback) GetEncoding(Int32, EncoderFallback, DecoderFallback)

Gibt die dem angegebenen Codepagebezeichner zugeordnete Codierung zurück.Returns the encoding associated with the specified code page identifier. Parameter geben einen Fehlerhandler für Zeichen an, die nicht codiert werden können, und für Bytefolgen, die nicht decodiert werden können.Parameters specify an error handler for characters that cannot be encoded and byte sequences that cannot be decoded.

public:
 static System::Text::Encoding ^ GetEncoding(int codepage, System::Text::EncoderFallback ^ encoderFallback, System::Text::DecoderFallback ^ decoderFallback);
public static System.Text.Encoding GetEncoding (int codepage, System.Text.EncoderFallback encoderFallback, System.Text.DecoderFallback decoderFallback);
static member GetEncoding : int * System.Text.EncoderFallback * System.Text.DecoderFallback -> System.Text.Encoding

Parameter

codepage
Int32 Int32 Int32 Int32

Der Codepagebezeichner der bevorzugten Codierung.The code page identifier of the preferred encoding. Mögliche Werte sind in der Codepage-Spalte der Tabelle aufgeführt, die im Thema zur Encoding-Klasse angezeigt wird.Possible values are listed in the Code Page column of the table that appears in the Encoding class topic.

- oder --or- 0 (null), um die Standardcodierung zu verwenden.0 (zero), to use the default encoding.

encoderFallback
EncoderFallback EncoderFallback EncoderFallback EncoderFallback

Ein Objekt, das ein Fehlerbehandlungsverfahren bereitstellt, wenn ein Zeichen nicht mit der aktuellen Codierung codiert werden kann.An object that provides an error-handling procedure when a character cannot be encoded with the current encoding.

decoderFallback
DecoderFallback DecoderFallback DecoderFallback DecoderFallback

Ein Objekt, das ein Fehlerbehandlungsverfahren bereitstellt, wenn eine Bytefolge nicht mit der aktuellen Codierung decodiert werden kann.An object that provides an error-handling procedure when a byte sequence cannot be decoded with the current encoding.

Gibt zurück

Die Codierung, die der angegebenen Codepage zugeordnet ist.The encoding that is associated with the specified code page.

Ausnahmen

codepage ist kleiner als 0 (null) oder größer als 65535.codepage is less than zero or greater than 65535.

codepage wird von der zugrunde liegenden Plattform nicht unterstützt.codepage is not supported by the underlying platform.

codepage wird von der zugrunde liegenden Plattform nicht unterstützt.codepage is not supported by the underlying platform.

Beispiele

Das folgende Beispiel veranschaulicht die Encoding.GetEncoding(String, EncoderFallback, DecoderFallback) Methode.The following example demonstrates the Encoding.GetEncoding(String, EncoderFallback, DecoderFallback) method.

// This example demonstrates the EncoderReplacementFallback class.

using namespace System;
using namespace System::Text;

int main()
{
    // Create an encoding, which is equivalent to calling the
    // ASCIIEncoding class constructor.
    // The EncoderReplacementFallback parameter specifies that the
    // string, "(unknown)", replace characters that cannot be encoded.
    // A decoder replacement fallback is also specified, but in this
    // code example the decoding operation cannot fail.

    Encoding^ ascii = Encoding::GetEncoding("us-ascii",
        gcnew EncoderReplacementFallback("(unknown)"),
        gcnew DecoderReplacementFallback("(error)"));

    // The input string consists of the Unicode characters LEFT POINTING
    // DOUBLE ANGLE QUOTATION MARK (U+00AB), 'X' (U+0058), and RIGHT
    // POINTING DOUBLE ANGLE QUOTATION MARK (U+00BB).
    // The encoding can only encode characters in the US-ASCII range of
    // U+0000 through U+007F. Consequently, the characters bracketing the
    // 'X' character are replaced with the fallback replacement string,
    // "(unknown)".

    String^ inputString = "\u00abX\u00bb";
    String^ decodedString;
    String^ twoNewLines = Environment::NewLine + Environment::NewLine;
    array <Byte>^ encodedBytes = 
        gcnew array<Byte>(ascii->GetByteCount(inputString));
    int numberOfEncodedBytes = 0;

    // ---------------------------------------------------------------------
    Console::Clear();

    // Display the name of the encoding.
    Console::WriteLine("The name of the encoding is \"{0}\".{1}", 
        ascii->WebName, Environment::NewLine);

    // Display the input string in text.
    Console::WriteLine("Input string ({0} characters): \"{1}\"",
        inputString->Length, inputString);

    // Display the input string in hexadecimal.
    Console::Write("Input string in hexadecimal: ");
    for each (char c in inputString)
    {
        Console::Write("0x{0:X2} ", c);
    }
    Console::Write(twoNewLines);

    // ---------------------------------------------------------------------
    // Encode the input string.

    Console::WriteLine("Encode the input string...");
    numberOfEncodedBytes = ascii->GetBytes(inputString, 0, inputString->Length,
        encodedBytes, 0);

    // Display the encoded bytes.
    Console::WriteLine("Encoded bytes in hexadecimal ({0} bytes):{1}",
        numberOfEncodedBytes, Environment::NewLine);
    for(int i = 0; i < encodedBytes->Length; i++)
    {
        Console::Write("0x{0:X2} ", encodedBytes[i]);
        if(((i + 1) % 6) == 0)
        {
            Console::WriteLine();
        }
    }
    Console::Write(twoNewLines);

    // ---------------------------------------------------------------------
    // Decode the encoded bytes, yielding a reconstituted string.

    Console::WriteLine("Decode the encoded bytes...");
    decodedString = ascii->GetString(encodedBytes);

    // Display the input string and the decoded string for comparison.
    Console::WriteLine("Input string:  \"{0}\"", inputString);
    Console::WriteLine("Decoded string:\"{0}\"", decodedString);
}



/*
This code example produces the following results:

The name of the encoding is "us-ascii".

Input string (3 characters): "X"
Input string in hexadecimal: 0xAB 0x58 0xBB

Encode the input string...
Encoded bytes in hexadecimal (19 bytes):

0x28 0x75 0x6E 0x6B 0x6E 0x6F
0x77 0x6E 0x29 0x58 0x28 0x75
0x6E 0x6B 0x6E 0x6F 0x77 0x6E
0x29

Decode the encoded bytes...
Input string:  "X"
Decoded string:"(unknown)X(unknown)"

*/
// This example demonstrates the EncoderReplacementFallback class.

using System;
using System.Text;

class Sample 
{
    public static void Main() 
    {

// Create an encoding, which is equivalent to calling the 
// ASCIIEncoding class constructor. 
// The EncoderReplacementFallback parameter specifies that the
// string, "(unknown)", replace characters that cannot be encoded. 
// A decoder replacement fallback is also specified, but in this 
// code example the decoding operation cannot fail.  

    Encoding ae = Encoding.GetEncoding(
                  "us-ascii",
                  new EncoderReplacementFallback("(unknown)"), 
                  new DecoderReplacementFallback("(error)"));

// The input string consists of the Unicode characters LEFT POINTING 
// DOUBLE ANGLE QUOTATION MARK (U+00AB), 'X' (U+0058), and RIGHT POINTING 
// DOUBLE ANGLE QUOTATION MARK (U+00BB). 
// The encoding can only encode characters in the US-ASCII range of U+0000 
// through U+007F. Consequently, the characters bracketing the 'X' character
// are replaced with the fallback replacement string, "(unknown)".

    string inputString = "\u00abX\u00bb";
    string decodedString;
    string twoNewLines = "\n\n";
    byte[] encodedBytes = new byte[ae.GetByteCount(inputString)];
    int numberOfEncodedBytes = 0;
    int ix = 0;

// --------------------------------------------------------------------------
    Console.Clear();

// Display the name of the encoding.
    Console.WriteLine("The name of the encoding is \"{0}\".\n", ae.WebName);

// Display the input string in text.
    Console.WriteLine("Input string ({0} characters): \"{1}\"", 
                       inputString.Length, inputString);

// Display the input string in hexadecimal.
    Console.Write("Input string in hexadecimal: ");
    foreach (char c in inputString.ToCharArray()) 
        {
        Console.Write("0x{0:X2} ", (int)c);
        }
    Console.Write(twoNewLines);

// --------------------------------------------------------------------------
// Encode the input string. 

    Console.WriteLine("Encode the input string...");
    numberOfEncodedBytes = ae.GetBytes(inputString, 0, inputString.Length, 
                                       encodedBytes, 0);

// Display the encoded bytes.
    Console.WriteLine("Encoded bytes in hexadecimal ({0} bytes):\n", 
                       numberOfEncodedBytes);
    ix = 0;
    foreach (byte b in encodedBytes)
        {
        Console.Write("0x{0:X2} ", (int)b);
        ix++;
        if (0 == ix % 6) Console.WriteLine();
        }
    Console.Write(twoNewLines);

// --------------------------------------------------------------------------
// Decode the encoded bytes, yielding a reconstituted string.

    Console.WriteLine("Decode the encoded bytes...");
    decodedString = ae.GetString(encodedBytes);

// Display the input string and the decoded string for comparison.
    Console.WriteLine("Input string:  \"{0}\"", inputString);
    Console.WriteLine("Decoded string:\"{0}\"", decodedString);
    }
}
/*
This code example produces the following results:

The name of the encoding is "us-ascii".

Input string (3 characters): "«X»"
Input string in hexadecimal: 0xAB 0x58 0xBB

Encode the input string...
Encoded bytes in hexadecimal (19 bytes):

0x28 0x75 0x6E 0x6B 0x6E 0x6F
0x77 0x6E 0x29 0x58 0x28 0x75
0x6E 0x6B 0x6E 0x6F 0x77 0x6E
0x29

Decode the encoded bytes...
Input string:  "«X»"
Decoded string:"(unknown)X(unknown)"

*/
' This example demonstrates the EncoderReplacementFallback class.
Imports System.Text

Class Sample
    Public Shared Sub Main() 
        
        ' Create an encoding, which is equivalent to calling the 
        ' ASCIIEncoding class constructor. 
        ' The EncoderReplacementFallback parameter specifies that the 
        ' string, "(unknown)", replace characters that cannot be encoded. 
        ' A decoder replacement fallback is also specified, but in this 
        ' code example the decoding operation cannot fail.  

        Dim erf As New EncoderReplacementFallback("(unknown)")
        Dim drf As New DecoderReplacementFallback("(error)")
        Dim ae As Encoding = Encoding.GetEncoding("us-ascii", erf, drf)
        
        ' The input string consists of the Unicode characters LEFT POINTING 
        ' DOUBLE ANGLE QUOTATION MARK (U+00AB), 'X' (U+0058), and RIGHT POINTING 
        ' DOUBLE ANGLE QUOTATION MARK (U+00BB). 
        ' The encoding can only encode characters in the US-ASCII range of U+0000 
        ' through U+007F. Consequently, the characters bracketing the 'X' character
        ' are replaced with the fallback replacement string, "(unknown)".

        Dim inputString As String = "«X»"
        Dim decodedString As String
        Dim twoNewLines As String = vbCrLf & vbCrLf
        Dim ix As Integer = 0
        Dim numberOfEncodedBytes As Integer = ae.GetByteCount(inputString)
        ' Counteract the compiler adding an extra byte to the array.
        Dim encodedBytes(numberOfEncodedBytes - 1) As Byte
        
        ' --------------------------------------------------------------------------
        Console.Clear()
        
        ' Display the name of the encoding.
        Console.WriteLine("The name of the encoding is ""{0}""." & vbCrLf, ae.WebName)
        
        ' Display the input string in text.
        Console.WriteLine("Input string ({0} characters): ""{1}""", _
                           inputString.Length, inputString)
        
        ' Display the input string in hexadecimal. 
        ' Each element is converted to an integer with Convert.ToInt32.
        Console.Write("Input string in hexadecimal: ")
        Dim c As Char
        For Each c In inputString.ToCharArray()
            Console.Write("0x{0:X2} ", Convert.ToInt32(c))
        Next c
        Console.Write(twoNewLines)
        
        ' --------------------------------------------------------------------------
        ' Encode the input string. 
        Console.WriteLine("Encode the input string...")
        numberOfEncodedBytes = ae.GetBytes(inputString, 0, inputString.Length, _
                                           encodedBytes, 0)
        
        ' Display the encoded bytes. 
        ' Each element is converted to an integer with Convert.ToInt32.
        Console.WriteLine("Encoded bytes in hexadecimal ({0} bytes):" & vbCrLf, _
                           numberOfEncodedBytes)
        ix = 0
        Dim b As Byte
        For Each b In encodedBytes
            Console.Write("0x{0:X2} ", Convert.ToInt32(b))
            ix += 1
            If 0 = ix Mod 6 Then
                Console.WriteLine()
            End If
        Next b
        Console.Write(twoNewLines)
        
        ' --------------------------------------------------------------------------
        ' Decode the encoded bytes, yielding a reconstituted string.
        Console.WriteLine("Decode the encoded bytes...")
        decodedString = ae.GetString(encodedBytes)
        
        ' Display the input string and the decoded string for comparison.
        Console.WriteLine("Input string:  ""{0}""", inputString)
        Console.WriteLine("Decoded string:""{0}""", decodedString)
    
    End Sub
End Class
'
'This code example produces the following results:
'
'The name of the encoding is "us-ascii".
'
'Input string (3 characters): "X"
'Input string in hexadecimal: 0xAB 0x58 0xBB
'
'Encode the input string...
'Encoded bytes in hexadecimal (19 bytes):
'
'0x28 0x75 0x6E 0x6B 0x6E 0x6F
'0x77 0x6E 0x29 0x58 0x28 0x75
'0x6E 0x6B 0x6E 0x6F 0x77 0x6E
'0x29
'
'Decode the encoded bytes...
'Input string:  "X"
'Decoded string:"(unknown)X(unknown)"
'

Hinweise

Hinweis

Einige nicht unterstützte Codepages bewirken ArgumentException , dass die Ausnahme ausgelöst wird, NotSupportedExceptionwährend andere dazu führen.Some unsupported code pages cause the exception ArgumentException to be thrown, whereas others cause NotSupportedException. Der Code muss daher alle Ausnahmen abfangen, die im Abschnitt "Ausnahmen" angegeben sind.Therefore, your code must catch all exceptions indicated in the Exceptions section.

Im .NET Framework basiert die GetEncoding -Methode auf der zugrunde liegenden Plattform, um die meisten Codepages zu unterstützen.In the .NET Framework, the GetEncoding method relies on the underlying platform to support most code pages. Allerdings unterstützt die .NET Framework nativ einige Codierungen.However, the .NET Framework natively supports some encodings. Eine Liste der Codepages finden Sie im Encoding Thema zur-Klasse.For a list of code pages, see the Encoding class topic. In .net Core gibt die GetEncoding -Methode die Codierungen zurück, die von .net Core unterstützt werden.In .NET Core, the GetEncoding method returns the encodings natively supported by .NET Core. Bei beiden .net-Implementierungen können Sie die GetEncodings -Methode zum Abrufen eines Arrays von EncodingInfo -Objekten, das Informationen zu allen verfügbaren Codierungen enthält, abrufen.On both .NET implementations, you can call the GetEncodings method to get an array of EncodingInfo objects that contains information about all available encodings.

Zusätzlich zu den Codierungen, die in .net Core nativ verfügbar sind oder auf einer bestimmten Platt Form Version der .NET Framework intrinsisch unterstützt werden, gibt GetEncoding die Methode alle zusätzlichen Codierungen zurück, die durch Registrieren eines -Elementsverfügbargemachtwerden.EncodingProvider -Objekt.In addition to the encodings that are natively available on .NET Core or that are intrinsically supported on a specific platform version of the .NET Framework, the GetEncoding method returns any additional encodings that are made available by registering an EncodingProvider object. Wenn dieselbe Codierung von mehreren EncodingProvider Objekten registriert wurde, gibt diese Methode die zuletzt registrierte zurück.If the same encoding has been registered by multiple EncodingProvider objects, this method returns the last one registered.

Sie können auch den Wert 0 für das codepage -Argument angeben.You can also supply a value of 0 for the codepage argument. Das genaue Verhalten hängt davon ab, ob Codierungen durch Registrieren eines EncodingProvider Objekts zur Verfügung gestellt wurden:Its precise behavior depends on whether any encodings have been made available by registering an EncodingProvider object:

  • Wenn mindestens ein Codierungs Anbieter registriert wurde, wird die Codierung des letzten registrierten Anbieters zurückgegeben, der die Rückgabe einer Codierung gewählt hat, wenn GetEncoding der Methode ein codepage Argument von 0 (null) überlassen wird.If one or more encoding providers have been registered, it returns the encoding of the last registered provider that has chosen to return a encoding when the GetEncoding method is passed a codepage argument of 0.

  • Wenn auf dem .NET Framework kein Codierungs Anbieter registriert ist, wenn der CodePagesEncodingProvider der registrierte Codierungs Anbieter ist, oder wenn kein registrierter Codierungs Anbieter den codepage Wert 0 verarbeitet, wird die aktive Codepage zurückgegeben.On the .NET Framework, if no encoding provider has been registered, if the CodePagesEncodingProvider is the registered encoding provider, or if no registered encoding provider handles a codepage value of 0, it returns the active code page.

  • Wenn in .net Core kein Codierungs Anbieter registriert wurde oder wenn kein registrierter Codierungs Anbieter den codepage Wert 0 verarbeitet, wird die UTF8Encoding Codierung zurückgegeben.On .NET Core, if no encoding provider has been registered or if no registered encoding provider handles a codepage value of 0, it returns the UTF8Encoding encoding.

Hinweis

Die ANSI-Codepages können sich auf verschiedenen Computern unterscheiden und können auf einem einzelnen Computer geändert werden, was zu Daten Beschädigungen führt.The ANSI code pages can be different on different computers and can change on a single computer, leading to data corruption. Wenn die aktive Codepage eine ANSI-Codepage ist, wird daher nicht empfohlen, Codierungs-und Decodierungs Daten mit Encoding.GetEncoding(0) der von zurückgegebenen Standard Codepage zu verwenden.For this reason, if the active code page is an ANSI code page, encoding and decoding data using the default code page returned by Encoding.GetEncoding(0) is not recommended. Um möglichst konsistente Ergebnisse zu erzielen, sollten Sie Unicode verwenden, z. b. UTF-8 (Codepage 65001) oder UTF-16 anstelle einer bestimmten Codepage.For the most consistent results, you should use Unicode, such as UTF-8 (code page 65001) or UTF-16, instead of a specific code page.

Zum Abrufen der Codierung, die der aktiven Codepage zugeordnet ist, können Sie entweder den Wert 0 für das codepage -Argument angeben oder, wenn der Code auf der .NET Framework auf dem Windows-Desktop ausgeführt wird, den Wert Encoding.Default der-Eigenschaft abrufen.To get the encoding associated with the active code page, you can either supply a value of 0 for the codepage argument or, if your code is running on the .NET Framework on the Windows desktop, retrieve the value of the Encoding.Default property. Um die aktuelle aktive Codepage zu ermitteln, müssen Sie die Windows GetACP- Funktion aus dem .NET Framework auf dem Windows-Desktop aufrufen.To determine the current active code page, call the Windows GetACP function from the .NET Framework on the Windows desktop.

GetEncodinggibt eine zwischengespeicherte-Instanz mit Standardeinstellungen zurück.GetEncoding returns a cached instance with default settings. Verwenden Sie die Konstruktoren abgeleiteter Klassen, um eine Instanz mit unterschiedlichen Einstellungen zu erhalten.You should use the constructors of derived classes to get an instance with different settings. Beispielsweise stellt die UTF32Encoding -Klasse einen Konstruktor bereit, mit dem Sie die Fehlererkennung aktivieren können.For example, the UTF32Encoding class provides a constructor that lets you enable error detection.

Siehe auch

GetEncoding(String, EncoderFallback, DecoderFallback) GetEncoding(String, EncoderFallback, DecoderFallback) GetEncoding(String, EncoderFallback, DecoderFallback)

Gibt die dem angegebenen Codepagenamen zugeordnete Codierung zurück.Returns the encoding associated with the specified code page name. Parameter geben einen Fehlerhandler für Zeichen an, die nicht codiert werden können, und für Bytefolgen, die nicht decodiert werden können.Parameters specify an error handler for characters that cannot be encoded and byte sequences that cannot be decoded.

public:
 static System::Text::Encoding ^ GetEncoding(System::String ^ name, System::Text::EncoderFallback ^ encoderFallback, System::Text::DecoderFallback ^ decoderFallback);
public static System.Text.Encoding GetEncoding (string name, System.Text.EncoderFallback encoderFallback, System.Text.DecoderFallback decoderFallback);
static member GetEncoding : string * System.Text.EncoderFallback * System.Text.DecoderFallback -> System.Text.Encoding

Parameter

name
String String String String

Der Codepagename der bevorzugten Codierung.The code page name of the preferred encoding. Jeder von der WebName-Eigenschaft zurückgegebene Wert ist gültig.Any value returned by the WebName property is valid. Mögliche Werte sind in der Name-Spalte der Tabelle aufgeführt, die im Thema zur Encoding-Klasse angezeigt wird.Possible values are listed in the Name column of the table that appears in the Encoding class topic.

encoderFallback
EncoderFallback EncoderFallback EncoderFallback EncoderFallback

Ein Objekt, das ein Fehlerbehandlungsverfahren bereitstellt, wenn ein Zeichen nicht mit der aktuellen Codierung codiert werden kann.An object that provides an error-handling procedure when a character cannot be encoded with the current encoding.

decoderFallback
DecoderFallback DecoderFallback DecoderFallback DecoderFallback

Ein Objekt, das ein Fehlerbehandlungsverfahren bereitstellt, wenn eine Bytefolge nicht mit der aktuellen Codierung decodiert werden kann.An object that provides an error-handling procedure when a byte sequence cannot be decoded with the current encoding.

Gibt zurück

Die Codierung, die der angegebenen Codepage zugeordnet ist.The encoding that is associated with the specified code page.

Ausnahmen

name ist kein gültiger Codepagename.name is not a valid code page name.

- oder --or- Die durch name angegebene Codepage wird von der zugrunde liegenden Plattform nicht unterstützt.The code page indicated by name is not supported by the underlying platform.

Beispiele

Das folgende Beispiel veranschaulicht die Encoding.GetEncoding(String, EncoderFallback, DecoderFallback) Methode.The following example demonstrates the Encoding.GetEncoding(String, EncoderFallback, DecoderFallback) method.

// This example demonstrates the EncoderReplacementFallback class.

using namespace System;
using namespace System::Text;

int main()
{
    // Create an encoding, which is equivalent to calling the
    // ASCIIEncoding class constructor.
    // The EncoderReplacementFallback parameter specifies that the
    // string, "(unknown)", replace characters that cannot be encoded.
    // A decoder replacement fallback is also specified, but in this
    // code example the decoding operation cannot fail.

    Encoding^ ascii = Encoding::GetEncoding("us-ascii",
        gcnew EncoderReplacementFallback("(unknown)"),
        gcnew DecoderReplacementFallback("(error)"));

    // The input string consists of the Unicode characters LEFT POINTING
    // DOUBLE ANGLE QUOTATION MARK (U+00AB), 'X' (U+0058), and RIGHT
    // POINTING DOUBLE ANGLE QUOTATION MARK (U+00BB).
    // The encoding can only encode characters in the US-ASCII range of
    // U+0000 through U+007F. Consequently, the characters bracketing the
    // 'X' character are replaced with the fallback replacement string,
    // "(unknown)".

    String^ inputString = "\u00abX\u00bb";
    String^ decodedString;
    String^ twoNewLines = Environment::NewLine + Environment::NewLine;
    array <Byte>^ encodedBytes = 
        gcnew array<Byte>(ascii->GetByteCount(inputString));
    int numberOfEncodedBytes = 0;

    // ---------------------------------------------------------------------
    Console::Clear();

    // Display the name of the encoding.
    Console::WriteLine("The name of the encoding is \"{0}\".{1}", 
        ascii->WebName, Environment::NewLine);

    // Display the input string in text.
    Console::WriteLine("Input string ({0} characters): \"{1}\"",
        inputString->Length, inputString);

    // Display the input string in hexadecimal.
    Console::Write("Input string in hexadecimal: ");
    for each (char c in inputString)
    {
        Console::Write("0x{0:X2} ", c);
    }
    Console::Write(twoNewLines);

    // ---------------------------------------------------------------------
    // Encode the input string.

    Console::WriteLine("Encode the input string...");
    numberOfEncodedBytes = ascii->GetBytes(inputString, 0, inputString->Length,
        encodedBytes, 0);

    // Display the encoded bytes.
    Console::WriteLine("Encoded bytes in hexadecimal ({0} bytes):{1}",
        numberOfEncodedBytes, Environment::NewLine);
    for(int i = 0; i < encodedBytes->Length; i++)
    {
        Console::Write("0x{0:X2} ", encodedBytes[i]);
        if(((i + 1) % 6) == 0)
        {
            Console::WriteLine();
        }
    }
    Console::Write(twoNewLines);

    // ---------------------------------------------------------------------
    // Decode the encoded bytes, yielding a reconstituted string.

    Console::WriteLine("Decode the encoded bytes...");
    decodedString = ascii->GetString(encodedBytes);

    // Display the input string and the decoded string for comparison.
    Console::WriteLine("Input string:  \"{0}\"", inputString);
    Console::WriteLine("Decoded string:\"{0}\"", decodedString);
}



/*
This code example produces the following results:

The name of the encoding is "us-ascii".

Input string (3 characters): "X"
Input string in hexadecimal: 0xAB 0x58 0xBB

Encode the input string...
Encoded bytes in hexadecimal (19 bytes):

0x28 0x75 0x6E 0x6B 0x6E 0x6F
0x77 0x6E 0x29 0x58 0x28 0x75
0x6E 0x6B 0x6E 0x6F 0x77 0x6E
0x29

Decode the encoded bytes...
Input string:  "X"
Decoded string:"(unknown)X(unknown)"

*/
// This example demonstrates the EncoderReplacementFallback class.

using System;
using System.Text;

class Sample 
{
    public static void Main() 
    {

// Create an encoding, which is equivalent to calling the 
// ASCIIEncoding class constructor. 
// The EncoderReplacementFallback parameter specifies that the
// string, "(unknown)", replace characters that cannot be encoded. 
// A decoder replacement fallback is also specified, but in this 
// code example the decoding operation cannot fail.  

    Encoding ae = Encoding.GetEncoding(
                  "us-ascii",
                  new EncoderReplacementFallback("(unknown)"), 
                  new DecoderReplacementFallback("(error)"));

// The input string consists of the Unicode characters LEFT POINTING 
// DOUBLE ANGLE QUOTATION MARK (U+00AB), 'X' (U+0058), and RIGHT POINTING 
// DOUBLE ANGLE QUOTATION MARK (U+00BB). 
// The encoding can only encode characters in the US-ASCII range of U+0000 
// through U+007F. Consequently, the characters bracketing the 'X' character
// are replaced with the fallback replacement string, "(unknown)".

    string inputString = "\u00abX\u00bb";
    string decodedString;
    string twoNewLines = "\n\n";
    byte[] encodedBytes = new byte[ae.GetByteCount(inputString)];
    int numberOfEncodedBytes = 0;
    int ix = 0;

// --------------------------------------------------------------------------
    Console.Clear();

// Display the name of the encoding.
    Console.WriteLine("The name of the encoding is \"{0}\".\n", ae.WebName);

// Display the input string in text.
    Console.WriteLine("Input string ({0} characters): \"{1}\"", 
                       inputString.Length, inputString);

// Display the input string in hexadecimal.
    Console.Write("Input string in hexadecimal: ");
    foreach (char c in inputString.ToCharArray()) 
        {
        Console.Write("0x{0:X2} ", (int)c);
        }
    Console.Write(twoNewLines);

// --------------------------------------------------------------------------
// Encode the input string. 

    Console.WriteLine("Encode the input string...");
    numberOfEncodedBytes = ae.GetBytes(inputString, 0, inputString.Length, 
                                       encodedBytes, 0);

// Display the encoded bytes.
    Console.WriteLine("Encoded bytes in hexadecimal ({0} bytes):\n", 
                       numberOfEncodedBytes);
    ix = 0;
    foreach (byte b in encodedBytes)
        {
        Console.Write("0x{0:X2} ", (int)b);
        ix++;
        if (0 == ix % 6) Console.WriteLine();
        }
    Console.Write(twoNewLines);

// --------------------------------------------------------------------------
// Decode the encoded bytes, yielding a reconstituted string.

    Console.WriteLine("Decode the encoded bytes...");
    decodedString = ae.GetString(encodedBytes);

// Display the input string and the decoded string for comparison.
    Console.WriteLine("Input string:  \"{0}\"", inputString);
    Console.WriteLine("Decoded string:\"{0}\"", decodedString);
    }
}
/*
This code example produces the following results:

The name of the encoding is "us-ascii".

Input string (3 characters): "«X»"
Input string in hexadecimal: 0xAB 0x58 0xBB

Encode the input string...
Encoded bytes in hexadecimal (19 bytes):

0x28 0x75 0x6E 0x6B 0x6E 0x6F
0x77 0x6E 0x29 0x58 0x28 0x75
0x6E 0x6B 0x6E 0x6F 0x77 0x6E
0x29

Decode the encoded bytes...
Input string:  "«X»"
Decoded string:"(unknown)X(unknown)"

*/
' This example demonstrates the EncoderReplacementFallback class.
Imports System.Text

Class Sample
    Public Shared Sub Main() 
        
        ' Create an encoding, which is equivalent to calling the 
        ' ASCIIEncoding class constructor. 
        ' The EncoderReplacementFallback parameter specifies that the 
        ' string, "(unknown)", replace characters that cannot be encoded. 
        ' A decoder replacement fallback is also specified, but in this 
        ' code example the decoding operation cannot fail.  

        Dim erf As New EncoderReplacementFallback("(unknown)")
        Dim drf As New DecoderReplacementFallback("(error)")
        Dim ae As Encoding = Encoding.GetEncoding("us-ascii", erf, drf)
        
        ' The input string consists of the Unicode characters LEFT POINTING 
        ' DOUBLE ANGLE QUOTATION MARK (U+00AB), 'X' (U+0058), and RIGHT POINTING 
        ' DOUBLE ANGLE QUOTATION MARK (U+00BB). 
        ' The encoding can only encode characters in the US-ASCII range of U+0000 
        ' through U+007F. Consequently, the characters bracketing the 'X' character
        ' are replaced with the fallback replacement string, "(unknown)".

        Dim inputString As String = "«X»"
        Dim decodedString As String
        Dim twoNewLines As String = vbCrLf & vbCrLf
        Dim ix As Integer = 0
        Dim numberOfEncodedBytes As Integer = ae.GetByteCount(inputString)
        ' Counteract the compiler adding an extra byte to the array.
        Dim encodedBytes(numberOfEncodedBytes - 1) As Byte
        
        ' --------------------------------------------------------------------------
        Console.Clear()
        
        ' Display the name of the encoding.
        Console.WriteLine("The name of the encoding is ""{0}""." & vbCrLf, ae.WebName)
        
        ' Display the input string in text.
        Console.WriteLine("Input string ({0} characters): ""{1}""", _
                           inputString.Length, inputString)
        
        ' Display the input string in hexadecimal. 
        ' Each element is converted to an integer with Convert.ToInt32.
        Console.Write("Input string in hexadecimal: ")
        Dim c As Char
        For Each c In inputString.ToCharArray()
            Console.Write("0x{0:X2} ", Convert.ToInt32(c))
        Next c
        Console.Write(twoNewLines)
        
        ' --------------------------------------------------------------------------
        ' Encode the input string. 
        Console.WriteLine("Encode the input string...")
        numberOfEncodedBytes = ae.GetBytes(inputString, 0, inputString.Length, _
                                           encodedBytes, 0)
        
        ' Display the encoded bytes. 
        ' Each element is converted to an integer with Convert.ToInt32.
        Console.WriteLine("Encoded bytes in hexadecimal ({0} bytes):" & vbCrLf, _
                           numberOfEncodedBytes)
        ix = 0
        Dim b As Byte
        For Each b In encodedBytes
            Console.Write("0x{0:X2} ", Convert.ToInt32(b))
            ix += 1
            If 0 = ix Mod 6 Then
                Console.WriteLine()
            End If
        Next b
        Console.Write(twoNewLines)
        
        ' --------------------------------------------------------------------------
        ' Decode the encoded bytes, yielding a reconstituted string.
        Console.WriteLine("Decode the encoded bytes...")
        decodedString = ae.GetString(encodedBytes)
        
        ' Display the input string and the decoded string for comparison.
        Console.WriteLine("Input string:  ""{0}""", inputString)
        Console.WriteLine("Decoded string:""{0}""", decodedString)
    
    End Sub
End Class
'
'This code example produces the following results:
'
'The name of the encoding is "us-ascii".
'
'Input string (3 characters): "X"
'Input string in hexadecimal: 0xAB 0x58 0xBB
'
'Encode the input string...
'Encoded bytes in hexadecimal (19 bytes):
'
'0x28 0x75 0x6E 0x6B 0x6E 0x6F
'0x77 0x6E 0x29 0x58 0x28 0x75
'0x6E 0x6B 0x6E 0x6F 0x77 0x6E
'0x29
'
'Decode the encoded bytes...
'Input string:  "X"
'Decoded string:"(unknown)X(unknown)"
'

Hinweise

Im .NET Framework basiert die GetEncoding -Methode auf der zugrunde liegenden Plattform, um die meisten Codepages zu unterstützen.In the .NET Framework, the GetEncoding method relies on the underlying platform to support most code pages. Allerdings unterstützt die .NET Framework nativ einige Codierungen.However, the .NET Framework natively supports some encodings. Eine Liste der Codepages finden Sie im Encoding Thema zur-Klasse.For a list of code pages, see the Encoding class topic. In .net Core gibt die GetEncoding -Methode die Codierungen zurück, die von .net Core unterstützt werden.In .NET Core, the GetEncoding method returns the encodings natively supported by .NET Core. Bei beiden .net-Implementierungen können Sie die GetEncodings -Methode zum Abrufen eines Arrays von EncodingInfo -Objekten, das Informationen zu allen verfügbaren Codierungen enthält, abrufen.On both .NET implementations, you can call the GetEncodings method to get an array of EncodingInfo objects that contains information about all available encodings.

Zusätzlich zu den Codierungen, die in .net Core nativ verfügbar sind oder auf einer bestimmten Platt Form Version der .NET Framework intrinsisch unterstützt werden, gibt GetEncoding die Methode alle zusätzlichen Codierungen zurück, die durch Registrieren eines -Elementsverfügbargemachtwerden.EncodingProvider -Objekt.In addition to the encodings that are natively available on .NET Core or that are intrinsically supported on a specific platform version of the .NET Framework, the GetEncoding method returns any additional encodings that are made available by registering an EncodingProvider object. Wenn dieselbe Codierung von mehreren EncodingProvider Objekten registriert wurde, gibt diese Methode die zuletzt registrierte zurück.If the same encoding has been registered by multiple EncodingProvider objects, this method returns the last one registered.

Hinweis

Die ANSI-Codepages können sich auf verschiedenen Computern unterscheiden und können auf einem einzelnen Computer geändert werden, was zu Daten Beschädigungen führt.The ANSI code pages can be different on different computers and can change on a single computer, leading to data corruption. Um möglichst konsistente Ergebnisse zu erzielen, sollten Sie eine Unicode-Codierung, z. b. UTF-8 (Codepage 65001) oder UTF-16, anstelle einer bestimmten Codepage verwenden.For the most consistent results, you should use a Unicode encoding, such as UTF-8 (code page 65001) or UTF-16, instead of a specific code page.

GetEncodinggibt eine zwischengespeicherte-Instanz mit Standardeinstellungen zurück.GetEncoding returns a cached instance with default settings. Verwenden Sie die Konstruktoren abgeleiteter Klassen, um eine Instanz mit unterschiedlichen Einstellungen zu erhalten.You should use the constructors of derived classes to get an instance with different settings. Beispielsweise stellt die UTF32Encoding -Klasse einen Konstruktor bereit, mit dem Sie die Fehlererkennung aktivieren können.For example, the UTF32Encoding class provides a constructor that lets you enable error detection.

Siehe auch

Gilt für: