Encoding.GetEncoding Methode

Definitie

Retourneert een codering voor de opgegeven codepagina.

Overloads

Name Description
GetEncoding(Int32)

Retourneert de codering die is gekoppeld aan de opgegeven codepagina-id.

GetEncoding(String)

Retourneert de codering die is gekoppeld aan de opgegeven codepaginanaam.

GetEncoding(Int32, EncoderFallback, DecoderFallback)

Retourneert de codering die is gekoppeld aan de opgegeven codepagina-id. Parameters geven een fouthandler op voor tekens die niet kunnen worden gecodeerd en bytereeksen die niet kunnen worden gedecodeerd.

GetEncoding(String, EncoderFallback, DecoderFallback)

Retourneert de codering die is gekoppeld aan de opgegeven codepaginanaam. Parameters geven een fouthandler op voor tekens die niet kunnen worden gecodeerd en bytereeksen die niet kunnen worden gedecodeerd.

GetEncoding(Int32)

Retourneert de codering die is gekoppeld aan de opgegeven codepagina-id.

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

Parameters

codepage
Int32

De codepagina-id van de voorkeurscodering. Zie voor een lijst met mogelijke waarden Encoding.

– of –

0 (nul) om de standaardcodering te gebruiken.

Retouren

De codering die is gekoppeld aan de opgegeven codepagina.

Uitzonderingen

codepage is kleiner dan nul of groter dan 65535.

codepage wordt niet ondersteund door het onderliggende platform.

codepage wordt niet ondersteund door het onderliggende platform.

Voorbeelden

In het volgende voorbeeld worden twee exemplaren van dezelfde codering opgehaald (één op codepagina en een andere op naam) en wordt de gelijkheid gecontroleerd.

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

Opmerkingen

De terugvalhandler is afhankelijk van het coderingstype .codepage Als codepage dit een codepagina of dbCS-codering (double-byte character set) is, wordt een best passende terugvalhandler gebruikt. Anders wordt een vervangende terugvalhandler gebruikt. Deze terugvalhandlers zijn mogelijk niet geschikt voor uw app. Als u de terugvalhandler wilt opgeven die wordt gebruikt door de codering die is opgegeven door codepage, kunt u de GetEncoding(Int32, EncoderFallback, DecoderFallback) overbelasting aanroepen.

In .NET Framework is de methode GetEncoding afhankelijk van het onderliggende platform om de meeste codepagina's te ondersteunen. .NET Framework biedt echter systeemeigen ondersteuning voor enkele coderingen. Zie Lijst met coderingen voor een lijst met codepagina's. In .NET Core retourneert de methode GetEncoding de coderingen die systeemeigen worden ondersteund door .NET Core. In beide .NET-implementaties kunt u de methode GetEncodings aanroepen om een matrix van EncodingInfo-objecten op te halen die informatie bevatten over alle beschikbare coderingen.

Naast de coderingen die systeemeigen beschikbaar zijn op .NET Core of die intrinsiek worden ondersteund op een specifieke platformversie van .NET Framework, retourneert de methode GetEncoding aanvullende coderingen die beschikbaar worden gesteld door een EncodingProvider-object te registreren. Als dezelfde codering door meerdere EncodingProvider objecten is geregistreerd, retourneert deze methode de laatste geregistreerde.

U kunt ook een waarde van 0 opgeven voor het codepage argument. Het gedrag varieert tussen .NET Framework en .NET Core en latere versies:

In .NET Framework: Retourneert altijd de codering die overeenkomt met de actieve codepagina van het systeem in Windows. Dit is dezelfde codering die door de Encoding.Default eigenschap wordt geretourneerd.

In .NET Core en latere versies: Het gedrag is afhankelijk van de coderingsconfiguratie van de toepassing:

  • Er is geen coderingsprovider geregistreerd: retourneert een UTF8Encoding, hetzelfde als Encoding.Default.

  • CodePagesEncodingProvider geregistreerd:

    • Op Windows retourneert u de codering die overeenkomt met de actieve codepagina van het systeem (hetzelfde als het gedrag van .NET Framework).
    • Op non-Windows platforms wordt altijd een UTF8Encoding geretourneerd.
  • Een andere provider geregistreerd: het gedrag wordt bepaald door die provider. Raadpleeg de bijbehorende documentatie voor meer informatie. Als meerdere providers zijn geregistreerd, retourneert de methode de codering van de laatste geregistreerde provider die een codepage argument van 0 verwerkt.

Note

  • Sommige niet-ondersteunde codepagina's zorgen ervoor dat er een ArgumentException wordt gegenereerd, terwijl anderen een NotSupportedException. Daarom moet uw code alle uitzonderingen ondervangen die worden aangegeven in de sectie Uitzonderingen.
  • In .NET 5 en latere versies wordt de codepagina-id 65000, die UTF-7 vertegenwoordigt, niet ondersteund.

Note

De ANSI-codepagina's kunnen op verschillende computers verschillen en kunnen worden gewijzigd op één computer, wat leidt tot beschadiging van gegevens. Als de actieve codepagina daarom een ANSI-codepagina is, wordt het coderen en decoderen van gegevens met behulp van de standaardcodepagina die wordt Encoding.GetEncoding(0) geretourneerd, niet aanbevolen. Voor de meest consistente resultaten moet u een Unicode-codering gebruiken, zoals UTF-8 (codepagina 65001) of UTF-16, in plaats van een specifieke codepagina.

GetEncoding retourneert een exemplaar in de cache met standaardinstellingen. U moet de constructors van afgeleide klassen gebruiken om een exemplaar met verschillende instellingen op te halen. De klasse biedt bijvoorbeeld UTF32Encoding een constructor waarmee u foutdetectie kunt inschakelen.

Zie ook

Van toepassing op

GetEncoding(String)

Retourneert de codering die is gekoppeld aan de opgegeven codepaginanaam.

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

Parameters

name
String

De codepaginanaam van de voorkeurscodering. Elke waarde die door de WebName eigenschap wordt geretourneerd, is geldig. Zie voor een lijst met mogelijke waarden Encoding.

Retouren

De codering die is gekoppeld aan de opgegeven codepagina.

Uitzonderingen

name is geen geldige codepaginanaam.

– of –

De codepagina die wordt aangegeven name , wordt niet ondersteund door het onderliggende platform.

Voorbeelden

In het volgende voorbeeld worden twee exemplaren van dezelfde codering opgehaald (één op codepagina en een andere op naam) en wordt de gelijkheid gecontroleerd.

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

Opmerkingen

De terugvalhandler is afhankelijk van het coderingstype .name Als name dit een codepagina of dbCS-codering (double-byte character set) is, wordt een best passende terugvalhandler gebruikt. Anders wordt een vervangende terugvalhandler gebruikt. Deze terugvalhandlers zijn mogelijk niet geschikt voor uw app. Als u de terugvalhandler wilt opgeven die wordt gebruikt door de codering die is opgegeven door name, kunt u de GetEncoding(String, EncoderFallback, DecoderFallback) overbelasting aanroepen.

In .NET Framework is de methode GetEncoding afhankelijk van het onderliggende platform om de meeste codepagina's te ondersteunen. .NET Framework biedt echter systeemeigen ondersteuning voor enkele coderingen. Zie Lijst met coderingen voor een lijst met codepagina's. In .NET Core retourneert de methode GetEncoding de coderingen die systeemeigen worden ondersteund door .NET Core. In beide .NET-implementaties kunt u de methode GetEncodings aanroepen om een matrix van EncodingInfo-objecten op te halen die informatie bevatten over alle beschikbare coderingen.

Naast de coderingen die systeemeigen beschikbaar zijn op .NET Core of die intrinsiek worden ondersteund op een specifieke platformversie van .NET Framework, retourneert de methode GetEncoding aanvullende coderingen die beschikbaar worden gesteld door een EncodingProvider-object te registreren. Als dezelfde codering door meerdere EncodingProvider objecten is geregistreerd, retourneert deze methode de laatste geregistreerde.

In .NET 5 en latere versies wordt de naam van de codepagina utf-7 niet ondersteund.

Note

De ANSI-codepagina's kunnen op verschillende computers verschillen of ze kunnen worden gewijzigd voor één computer, wat leidt tot beschadiging van gegevens. Voor de meest consistente resultaten gebruikt u Unicode, zoals UTF-8 (codepagina 65001) of UTF-16, in plaats van een specifieke codepagina.

GetEncoding retourneert een exemplaar in de cache met standaardinstellingen. U moet de constructors van afgeleide klassen gebruiken om een exemplaar met verschillende instellingen op te halen. De klasse biedt bijvoorbeeld UTF32Encoding een constructor waarmee u foutdetectie kunt inschakelen.

Zie ook

Van toepassing op

GetEncoding(Int32, EncoderFallback, DecoderFallback)

Retourneert de codering die is gekoppeld aan de opgegeven codepagina-id. Parameters geven een fouthandler op voor tekens die niet kunnen worden gecodeerd en bytereeksen die niet kunnen worden gedecodeerd.

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
Public Shared Function GetEncoding (codepage As Integer, encoderFallback As EncoderFallback, decoderFallback As DecoderFallback) As Encoding

Parameters

codepage
Int32

De codepagina-id van de voorkeurscodering. Zie voor een lijst met mogelijke waarden Encoding.

– of –

0 (nul) om de standaardcodering te gebruiken.

encoderFallback
EncoderFallback

Een object dat een procedure voor foutafhandeling biedt wanneer een teken niet kan worden gecodeerd met de huidige codering.

decoderFallback
DecoderFallback

Een object dat een procedure voor foutafhandeling biedt wanneer een bytereeks niet kan worden gedecodeerd met de huidige codering.

Retouren

De codering die is gekoppeld aan de opgegeven codepagina.

Uitzonderingen

codepage is kleiner dan nul of groter dan 65535.

codepage wordt niet ondersteund door het onderliggende platform.

codepage wordt niet ondersteund door het onderliggende platform.

Voorbeelden

In het volgende voorbeeld ziet u de Encoding.GetEncoding(String, EncoderFallback, DecoderFallback) methode.

// 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;

// --------------------------------------------------------------------------
// 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
        
        ' --------------------------------------------------------------------------
        ' 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)"
'

Opmerkingen

Note

  • Sommige niet-ondersteunde codepagina's zorgen ervoor dat de uitzondering ArgumentException wordt gegenereerd, terwijl andere veroorzaken NotSupportedException. Daarom moet uw code alle uitzonderingen ondervangen die worden aangegeven in de sectie Uitzonderingen.
  • In .NET 5 en latere versies wordt de codepagina-id 65000, die UTF-7 vertegenwoordigt, niet ondersteund.

In .NET Framework is de methode GetEncoding afhankelijk van het onderliggende platform om de meeste codepagina's te ondersteunen. .NET Framework biedt echter systeemeigen ondersteuning voor enkele coderingen. Zie Lijst met coderingen voor een lijst met codepagina's. In .NET Core retourneert de methode GetEncoding de coderingen die systeemeigen worden ondersteund door .NET Core. In beide .NET-implementaties kunt u de methode GetEncodings aanroepen om een matrix van EncodingInfo-objecten op te halen die informatie bevatten over alle beschikbare coderingen.

Naast de coderingen die systeemeigen beschikbaar zijn op .NET Core of die intrinsiek worden ondersteund op een specifieke platformversie van .NET Framework, retourneert de methode GetEncoding aanvullende coderingen die beschikbaar worden gesteld door een EncodingProvider-object te registreren. Als dezelfde codering door meerdere EncodingProvider objecten is geregistreerd, retourneert deze methode de laatste geregistreerde.

U kunt ook een waarde van 0 opgeven voor het codepage argument. Het gedrag varieert tussen .NET Framework en .NET Core en latere versies:

In .NET Framework: Retourneert altijd de codering die overeenkomt met de actieve codepagina van het systeem in Windows. Dit is dezelfde codering die door de Encoding.Default eigenschap wordt geretourneerd.

In .NET Core en latere versies: Het gedrag is afhankelijk van de coderingsconfiguratie van de toepassing:

  • Er is geen coderingsprovider geregistreerd: retourneert een UTF8Encoding, hetzelfde als Encoding.Default.

  • CodePagesEncodingProvider geregistreerd:

    • Op Windows retourneert u de codering die overeenkomt met de actieve codepagina van het systeem (hetzelfde als het gedrag van .NET Framework).
    • Op non-Windows platforms wordt altijd een UTF8Encoding geretourneerd.
  • Een andere provider geregistreerd: het gedrag wordt bepaald door die provider. Raadpleeg de bijbehorende documentatie voor meer informatie. Als meerdere providers zijn geregistreerd, retourneert de methode de codering van de laatste geregistreerde provider die een codepage argument van 0 verwerkt.

Note

De ANSI-codepagina's kunnen op verschillende computers verschillen en kunnen worden gewijzigd op één computer, wat leidt tot beschadiging van gegevens. Als de actieve codepagina daarom een ANSI-codepagina is, wordt het coderen en decoderen van gegevens met behulp van de standaardcodepagina die wordt Encoding.GetEncoding(0) geretourneerd, niet aanbevolen. Voor de meest consistente resultaten moet u Unicode, zoals UTF-8 (codepagina 65001) of UTF-16, gebruiken in plaats van een specifieke codepagina.

Als u de codering wilt ophalen die is gekoppeld aan de actieve codepagina, kunt u een waarde van 0 opgeven voor het argument codepage of, als uw code wordt uitgevoerd op .NET Framework, de waarde van de eigenschap Encoding.Default ophalen. Als u de huidige actieve codepagina wilt bepalen, roept u de functie Windows GetACP aan vanuit .NET Framework.

GetEncoding retourneert een exemplaar in de cache met standaardinstellingen. U moet de constructors van afgeleide klassen gebruiken om een exemplaar met verschillende instellingen op te halen. De klasse biedt bijvoorbeeld UTF32Encoding een constructor waarmee u foutdetectie kunt inschakelen.

Zie ook

Van toepassing op

GetEncoding(String, EncoderFallback, DecoderFallback)

Retourneert de codering die is gekoppeld aan de opgegeven codepaginanaam. Parameters geven een fouthandler op voor tekens die niet kunnen worden gecodeerd en bytereeksen die niet kunnen worden gedecodeerd.

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
Public Shared Function GetEncoding (name As String, encoderFallback As EncoderFallback, decoderFallback As DecoderFallback) As Encoding

Parameters

name
String

De codepaginanaam van de voorkeurscodering. Elke waarde die door de WebName eigenschap wordt geretourneerd, is geldig. Mogelijke waarden worden weergegeven in de kolom Naam van de tabel die wordt weergegeven in het Encoding klasseonderwerp.

encoderFallback
EncoderFallback

Een object dat een procedure voor foutafhandeling biedt wanneer een teken niet kan worden gecodeerd met de huidige codering.

decoderFallback
DecoderFallback

Een object dat een procedure voor foutafhandeling biedt wanneer een bytereeks niet kan worden gedecodeerd met de huidige codering.

Retouren

De codering die is gekoppeld aan de opgegeven codepagina.

Uitzonderingen

name is geen geldige codepaginanaam.

– of –

De codepagina die wordt aangegeven name , wordt niet ondersteund door het onderliggende platform.

Voorbeelden

In het volgende voorbeeld ziet u de Encoding.GetEncoding(String, EncoderFallback, DecoderFallback) methode.

// 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;

// --------------------------------------------------------------------------
// 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
        
        ' --------------------------------------------------------------------------
        ' 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)"
'

Opmerkingen

In .NET Framework is de methode GetEncoding afhankelijk van het onderliggende platform om de meeste codepagina's te ondersteunen. .NET Framework biedt echter systeemeigen ondersteuning voor enkele coderingen. Zie Lijst met coderingen voor een lijst met codepagina's. In .NET Core retourneert de methode GetEncoding de coderingen die systeemeigen worden ondersteund door .NET Core. In beide .NET-implementaties kunt u de methode GetEncodings aanroepen om een matrix van EncodingInfo-objecten op te halen die informatie bevatten over alle beschikbare coderingen.

Naast de coderingen die systeemeigen beschikbaar zijn op .NET Core of die intrinsiek worden ondersteund op een specifieke platformversie van .NET Framework, retourneert de methode GetEncoding aanvullende coderingen die beschikbaar worden gesteld door een EncodingProvider-object te registreren. Als dezelfde codering door meerdere EncodingProvider objecten is geregistreerd, retourneert deze methode de laatste geregistreerde.

In .NET 5 en latere versies wordt de naam van de codepagina utf-7 niet ondersteund.

Note

De ANSI-codepagina's kunnen op verschillende computers verschillen en kunnen worden gewijzigd op één computer, wat leidt tot beschadiging van gegevens. Voor de meest consistente resultaten moet u een Unicode-codering gebruiken, zoals UTF-8 (codepagina 65001) of UTF-16, in plaats van een specifieke codepagina.

GetEncoding retourneert een exemplaar in de cache met standaardinstellingen. U moet de constructors van afgeleide klassen gebruiken om een exemplaar met verschillende instellingen op te halen. De klasse biedt bijvoorbeeld UTF32Encoding een constructor waarmee u foutdetectie kunt inschakelen.

Zie ook

Van toepassing op