Encoding Klasse

Definition

Stellt eine Zeichencodierung dar.

public ref class Encoding abstract
public ref class Encoding abstract : ICloneable
public abstract class Encoding
public abstract class Encoding : ICloneable
[System.Serializable]
public abstract class Encoding
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class Encoding : ICloneable
type Encoding = class
type Encoding = class
    interface ICloneable
[<System.Serializable>]
type Encoding = class
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Encoding = class
    interface ICloneable
Public MustInherit Class Encoding
Public MustInherit Class Encoding
Implements ICloneable
Vererbung
Encoding
Abgeleitet
Attribute
Implementiert

Beispiele

Im folgenden Beispiel wird eine Zeichenfolge von einer Codierung in eine andere konvertiert.

Hinweis

Das byte[] Array ist der einzige Typ in diesem Beispiel, der die codierten Daten enthält. Die .net Char -und- String Typen sind selbst Unicode, sodass der- GetChars Rückruf die Daten zurück in Unicode decodiert.

using namespace System;
using namespace System::Text;

int main()
{
   String^ unicodeString = "This string contains the unicode character Pi (\u03a0)";
   
   // Create two different encodings.
   Encoding^ ascii = Encoding::ASCII;
   Encoding^ unicode = Encoding::Unicode;
   
   // Convert the string into a byte array.
   array<Byte>^unicodeBytes = unicode->GetBytes( unicodeString );
   
   // Perform the conversion from one encoding to the other.
   array<Byte>^asciiBytes = Encoding::Convert( unicode, ascii, unicodeBytes );
   
   // Convert the new Byte into[] a char and[] then into a string.
   array<Char>^asciiChars = gcnew array<Char>(ascii->GetCharCount( asciiBytes, 0, asciiBytes->Length ));
   ascii->GetChars( asciiBytes, 0, asciiBytes->Length, asciiChars, 0 );
   String^ asciiString = gcnew String( asciiChars );
   
   // Display the strings created before and after the conversion.
   Console::WriteLine( "Original String*: {0}", unicodeString );
   Console::WriteLine( "Ascii converted String*: {0}", asciiString );
}
// The example displays the following output:
//    Original string: This string contains the unicode character Pi (Π)
//    Ascii converted string: This string contains the unicode character Pi (?)
using System;
using System.Text;

class Example
{
   static void Main()
   {
      string unicodeString = "This string contains the unicode character Pi (\u03a0)";

      // Create two different encodings.
      Encoding ascii = Encoding.ASCII;
      Encoding unicode = Encoding.Unicode;

      // Convert the string into a byte array.
      byte[] unicodeBytes = unicode.GetBytes(unicodeString);

      // Perform the conversion from one encoding to the other.
      byte[] asciiBytes = Encoding.Convert(unicode, ascii, unicodeBytes);
         
      // Convert the new byte[] into a char[] and then into a string.
      char[] asciiChars = new char[ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)];
      ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0);
      string asciiString = new string(asciiChars);

      // Display the strings created before and after the conversion.
      Console.WriteLine("Original string: {0}", unicodeString);
      Console.WriteLine("Ascii converted string: {0}", asciiString);
   }
}
// The example displays the following output:
//    Original string: This string contains the unicode character Pi (Π)
//    Ascii converted string: This string contains the unicode character Pi (?)
Imports System.Text

Class Example
   Shared Sub Main()
      Dim unicodeString As String = "This string contains the unicode character Pi (" & ChrW(&H03A0) & ")"

      ' Create two different encodings.
      Dim ascii As Encoding = Encoding.ASCII
      Dim unicode As Encoding = Encoding.Unicode

      ' Convert the string into a byte array.
      Dim unicodeBytes As Byte() = unicode.GetBytes(unicodeString)

      ' Perform the conversion from one encoding to the other.
      Dim asciiBytes As Byte() = Encoding.Convert(unicode, ascii, unicodeBytes)

      ' Convert the new byte array into a char array and then into a string.
      Dim asciiChars(ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length)-1) As Char
      ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0)
      Dim asciiString As New String(asciiChars)

      ' Display the strings created before and after the conversion.
      Console.WriteLine("Original string: {0}", unicodeString)
      Console.WriteLine("Ascii converted string: {0}", asciiString)
   End Sub
End Class
' The example displays the following output:
'    Original string: This string contains the unicode character Pi (Π)
'    Ascii converted string: This string contains the unicode character Pi (?)

Hinweise

Beim Kodieren werden Unicode-Zeichen in eine Bytefolge transformiert. Im Gegensatz dazu ist das Decodieren der Prozess der Transformation einer Sequenz codierter Bytes in eine Gruppe von Unicode-Zeichen. Informationen zu den Unicode-Transformations Formaten (UTFs) und anderen Codierungen, die von unterstützt Encoding werden, finden Sie unter Zeichencodierung in .net.

Beachten Sie, dass für die Verwendung Encoding von Unicode-Zeichen anstelle von willkürlichen Binärdaten (z. b. Byte Arrays) vorgesehen ist. Wenn Sie beliebige Binärdaten in Text codieren müssen, sollten Sie ein Protokoll verwenden, wie z. b. UUEncode, das von Methoden wie implementiert wird Convert.ToBase64CharArray .

.Net bietet die folgenden Implementierungen der Encoding -Klasse, um aktuelle Unicode-Codierungen und andere Codierungen zu unterstützen:

  • ASCIIEncodingcodiert Unicode-Zeichen als einzelne 7-Bit-ASCII-Zeichen. Diese Codierung unterstützt nur Zeichen Werte zwischen U + 0000 und u + 007F. Codepage 20127. Auch über die- ASCII Eigenschaft verfügbar.

  • UTF7Encodingcodiert Unicode-Zeichen mithilfe der UTF-7-Codierung. Diese Codierung unterstützt alle Unicode-Zeichen Werte. Codepage 65000. Auch über die- UTF7 Eigenschaft verfügbar.

  • UTF8Encodingcodiert Unicode-Zeichen mithilfe der UTF-8-Codierung. Diese Codierung unterstützt alle Unicode-Zeichen Werte. Codepage 65001. Auch über die- UTF8 Eigenschaft verfügbar.

  • UnicodeEncodingcodiert Unicode-Zeichen mithilfe der UTF-16-Codierung. Sowohl Little-Endian-als auch Big-Endian-Byte Bestellungen werden unterstützt. Auch über die Unicode -Eigenschaft und die- BigEndianUnicode Eigenschaft verfügbar.

  • UTF32Encodingcodiert Unicode-Zeichen mithilfe der UTF-32-Codierung. Es werden sowohl kleine Endian-(Codepage 12000) als auch Big Endian-Byte Bestellungen (Codepage 12001) unterstützt. Auch über die- UTF32 Eigenschaft verfügbar.

Die Encoding -Klasse ist primär für die Konvertierung zwischen verschiedenen Codierungen und Unicode vorgesehen. Häufig ist eine der abgeleiteten Unicode-Klassen die richtige Wahl für Ihre APP.

Verwenden GetEncoding Sie die-Methode, um andere Codierungen abzurufen, und rufen Sie die- GetEncodings Methode auf, um eine Liste aller Codierungen abzurufen.

Liste der Codierungen

In der folgenden Tabelle werden die von .NET unterstützten Codierungen aufgelistet. Sie listet die Code Page Nummer jeder Codierung und die Werte der Codierungs- EncodingInfo.Name und- EncodingInfo.DisplayName Eigenschaften auf. Ein Häkchen in der Spalte .NET Framework Support, .NET Core-Unterstützung oder .NET 5 und höher gibt an, dass die Codepage von dieser .NET-Implementierung nativ unterstützt wird, unabhängig von der zugrunde liegenden Plattform. Für .NET Framework hängt die Verfügbarkeit anderer Codierungen, die in der Tabelle aufgelistet sind, vom Betriebssystem ab. Für .NET Core und .NET 5 und höhere Versionen sind andere Codierungen verfügbar, indem sie die System.Text.CodePagesEncodingProvider -Klasse verwenden oder von der System.Text.EncodingProvider -Klasse abgeleitet werden.

Hinweis

Codepages, deren- EncodingInfo.Name Eigenschaft einem internationalen Standard entspricht, entsprechen nicht notwendigerweise vollständig dem Standard.

Codepage name Angezeigter Name .NET Framework Unterstützung .NET Core-Unterstützung Unterstützung für .NET 5 und höher
37 IBM037 IBM EBCDIC (USA-Kanada)
437 IBM437 OEM-USA
500 IBM500 IBM EBCDIC (International)
708 ASMO-708 Arabisch (ASMO 708)
720 DOS-720 Arabisch (DOS)
737 ibm737 Griechisch (DOS)
775 ibm775 Baltisch (DOS)
850 ibm850 Westeuropäisch (DOS)
852 ibm852 Mitteleuropäisch (DOS)
855 IBM855 OEM-Kyrillisch
857 ibm857 Türkisch (DOS)
858 IBM00858 OEM-mehrsprachige lateinische I
860 IBM860 Portugiesisch (DOS)
861 ibm861 Isländisch (DOS)
862 DOS-862 Hebräisch (DOS)
863 IBM863 Französisch (Kanada)
864 IBM864 Arabisch (864)
865 IBM865 Nordisch (DOS)
866 cp866 Kyrillisch (DOS)
869 ibm869 Griechisch, modern (DOS)
870 IBM870 IBM EBCDIC (mehrsprachige lateinische-2)
874 Windows-874 Thailändisch (Windows)
875 cp875 IBM EBCDIC (griechisch modern)
932 shift_jis Japanisch (Shift-JIS)
936 GB2312 Chinesisch vereinfacht (GB2312)
949 KS_C_5601-1987 Koreanisch
950 Big5 Chinesisch traditionell (Big5)
1026 IBM1026 IBM EBCDIC (Türkisch (lateinisch-5)
1047 IBM01047 IBM Latin-1
1140 IBM01140 IBM EBCDIC (USA-Kanada-Euro)
1.141 IBM01141 IBM EBCDIC (Deutschland-Euro)
1142 IBM01142 IBM EBCDIC (Dänemark-Norwegen-Euro)
1143 IBM01143 IBM EBCDIC (Finnland-Schweden-Euro)
1144 IBM01144 IBM EBCDIC (Italien-Euro)
1145 IBM01145 IBM EBCDIC (Spanien-Euro)
1146 IBM01146 IBM EBCDIC (UK-Euro)
1147 IBM01147 IBM EBCDIC (Frankreich-Euro)
1148 IBM01148 IBM EBCDIC (International-Euro)
1149 IBM01149 IBM EBCDIC (Isländisch-Euro)
1200 UTF-16 Unicode
1201 unicodeFFFE Unicode (Big-tedian)
1250 Windows-1250 Mitteleuropäisch (Windows)
1251 Windows-1251 Kyrillisch (Windows)
1252 Windows-1252 Westeuropäisch (Windows)
1253 Windows-1253 Griechisch (Windows)
1254 Windows-1254 Türkisch (Windows)
1255 Windows-1255 Hebräisch (Windows)
1256 Windows-1256 Arabisch (Windows)
1257 Windows-1257 Baltisch (Windows)
1258 Windows-1258 Vietnamesisch (Windows)
1361 Johab Koreanisch (Johab)
10000 Macintosh Westeuropäisch (Mac)
10001 x-Mac-Japanisch Japanisch (Mac)
10002 x-Mac-chinesetrad Chinesisch (traditionell) (Mac)
10003 x-Mac-Koreanisch Koreanisch (Mac)
10004 x-Mac-Arabisch Arabisch (Mac)
10005 x-Mac-Hebräisch Hebräisch (Mac)
10006 x-Mac-Griechisch Griechisch (Mac)
10007 x-Mac-Kyrillisch Kyrillisch (Mac)
10008 x-Mac-chinesesimp Chinesisch vereinfacht (Mac)
10010 x-Mac-Rumänisch Rumänisch (Mac)
10017 x-Mac-Ukrainisch Ukrainisch (Mac)
10021 x-Mac-Thai Thailändisch (Mac)
10029 x-Mac-CE Mitteleuropäisch (Mac)
10079 x-Mac-Isländisch Isländisch (Mac)
10081 x-Mac-Türkisch Türkisch (Mac)
10082 x-Mac-Kroatisch Kroatisch (Mac)
12000 UTF-32 Unicode (UTF-32)
12001 UTF-32be Unicode (UTF-32 Big-d)
20000 x-Chinesisch-CNS Chinesisch (traditionell) (CNS)
20001 x-cp20001 TCA-Taiwan
20002 x-Chinesisch-eTEN Chinesisch (traditionell) (eTEN)
20003 x-cp20003 IBM5550 Taiwan
20004 x-cp20004 Teletext-Taiwan
20005 x-cp20005 Wang Taiwan
20105 x-IA5 Westeuropäisch (IA5)
20106 x-IA5-Deutsch Deutsch (IA5)
20107 x-IA5-Schwedisch Schwedisch (IA5)
20108 x-IA5-Norwegisch Norwegisch (IA5)
20127 US-ASCII US-ASCII
20261 x-cp20261 T. 61
20269 x-cp20269 ISO-6937
20273 IBM273 IBM EBCDIC (Deutschland)
20277 IBM277 IBM EBCDIC (Dänemark-Norwegen)
20278 IBM278 IBM EBCDIC (Finnland-Schweden)
20280 IBM280 IBM EBCDIC (Italien)
20284 IBM284 IBM EBCDIC (Spanien)
20285 IBM285 IBM EBCDIC (Vereinigtes Königreich)
20290 IBM290 IBM EBCDIC (Japanisch Katakana)
20297 IBM297 IBM EBCDIC (Frankreich)
20420 IBM420 IBM EBCDIC (Arabisch)
20423 IBM423 IBM EBCDIC (Griechisch)
20424 IBM424 IBM EBCDIC (Hebräisch)
20833 x-EBCDIC-koreanextended IBM EBCDIC (Koreanisch erweitert)
20838 IBM-Thai IBM EBCDIC (Thailändisch)
20866 koi8-r Kyrillisch (KOI8-R)
20871 IBM871 IBM EBCDIC (Isländisch)
20880 IBM880 IBM EBCDIC (Kyrillisch Russisch)
20905 IBM905 IBM EBCDIC (Türkisch)
20924 IBM00924 IBM Latin-1
20932 EUC-JP Japanisch (JIS 0208-1990 und 0212-1990)
20936 x-cp20936 Chinesisch vereinfacht (GB2312-80)
20949 x-cp20949 Koreanisch Wansung
21025 cp1025 IBM EBCDIC (Kyrillisch Serbisch-Bulgarisch)
21866 KOI8-u Kyrillisch (KOI8-U)
28591 ISO-8859-1 Westeuropäisch (ISO)
28592 ISO-8859-2 Mitteleuropäisch (ISO)
28593 ISO-8859-3 Lateinisch 3 (ISO)
28594 ISO-8859-4 Baltisch (ISO)
28595 ISO-8859-5 Kyrillisch (ISO)
28596 ISO-8859-6 Arabisch (ISO)
28597 ISO-8859-7 Griechisch (ISO)
28598 ISO-8859-8 Hebräisch (ISO-Visual)
28599 ISO-8859-9 Türkisch (ISO)
28603 ISO-8859-13 Estonian (ISO)
28605 ISO-8859-15 Lateinisch 9 (ISO)
29001 x-Europa '
38598 ISO-8859-8-i Hebräisch (ISO-logisch)
50220 ISO-2022-JP Japanisch (JIS)
50221 csISO2022JP Japanisch (JIS-1-Byte-Kana zulassen)
50222 ISO-2022-JP Japanisch (JIS-1 Byte Kana-so/SI)
50225 ISO-2022-KR Koreanisch (ISO)
50227 x-cp50227 Chinesisch vereinfacht (ISO-2022)
51932 EUC-JP Japanisch (EUC)
51936 EUC-CN Chinesisch (vereinfacht) (EUC)
51949 EUC-KR Koreanisch (EUC)
52936 Hz-GB-2312 Chinesisch (vereinfacht) (Hz)
54936 GB18030 Chinesisch vereinfacht (GB18030)
57002 x-ISCII-de ISCII-Geräte Abteilung
57003 x-ISCII-be ISCII Bengalisch
57004 x-ISCII-Ta ISCII Tamil
57005 x-ISCII-te ISCII Telugu
57006 x-ISCII-as ISCII-Assamese
57007 x-ISCII-or ISCII Oriya
57008 x-ISCII-Ka ISCII Kannada
57009 x-ISCII-MA ISCII Malayalam
57010 x-ISCII-gu ISCII Gujarati
57011 x-ISCII-PA ISCII Punjabi
65000 UTF-7 Unicode (UTF-7)
65001 UTF-8 Unicode (UTF-8)

Im folgenden Beispiel werden die GetEncoding(Int32) -Methode und die- GetEncoding(String) Methode aufgerufen, um die codierte Codierung (Windows) zu erhalten. Es vergleicht die Encoding von den Methoden Aufrufen zurückgegebenen Objekte, um anzuzeigen, dass Sie gleich sind. Anschließend zeigt Maps den Unicode-Codepunkt und den entsprechenden Codepage-Wert für jedes Zeichen im griechischen Alphabet an.

using System;
using System.Text;

public class Example
{
   public static void Main()
   {
      Encoding enc = Encoding.GetEncoding(1253);
      Encoding altEnc = Encoding.GetEncoding("windows-1253");
      Console.WriteLine("{0} = Code Page {1}: {2}", enc.EncodingName,
                        altEnc.CodePage, enc.Equals(altEnc));
      string greekAlphabet = "Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η " +
                             "Θ θ Ι ι Κ κ Λ λ Μ μ Ν ν Ξ ξ " +
                             "Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ " +
                             "Φ φ Χ χ Ψ ψ Ω ω";
      Console.OutputEncoding = Encoding.UTF8;
      byte[] bytes = enc.GetBytes(greekAlphabet);
      Console.WriteLine("{0,-12} {1,20} {2,20:X2}", "Character",
                        "Unicode Code Point", "Code Page 1253");
      for (int ctr = 0; ctr < bytes.Length; ctr++) {
         if (greekAlphabet[ctr].Equals(' '))
            continue;

         Console.WriteLine("{0,-12} {1,20} {2,20:X2}", greekAlphabet[ctr],
                           GetCodePoint(greekAlphabet[ctr]), bytes[ctr]);
      }
   }

   private static string GetCodePoint(char ch)
   {
      string retVal = "u+";
      byte[] bytes = Encoding.Unicode.GetBytes(ch.ToString());
      for (int ctr = bytes.Length - 1; ctr >= 0; ctr--)
         retVal += bytes[ctr].ToString("X2");

      return retVal;
   }
}
// The example displays the following output:
//       Character      Unicode Code Point       Code Page 1253
//       Α                          u+0391                   C1
//       α                          u+03B1                   E1
//       Β                          u+0392                   C2
//       β                          u+03B2                   E2
//       Γ                          u+0393                   C3
//       γ                          u+03B3                   E3
//       Δ                          u+0394                   C4
//       δ                          u+03B4                   E4
//       Ε                          u+0395                   C5
//       ε                          u+03B5                   E5
//       Ζ                          u+0396                   C6
//       ζ                          u+03B6                   E6
//       Η                          u+0397                   C7
//       η                          u+03B7                   E7
//       Θ                          u+0398                   C8
//       θ                          u+03B8                   E8
//       Ι                          u+0399                   C9
//       ι                          u+03B9                   E9
//       Κ                          u+039A                   CA
//       κ                          u+03BA                   EA
//       Λ                          u+039B                   CB
//       λ                          u+03BB                   EB
//       Μ                          u+039C                   CC
//       μ                          u+03BC                   EC
//       Ν                          u+039D                   CD
//       ν                          u+03BD                   ED
//       Ξ                          u+039E                   CE
//       ξ                          u+03BE                   EE
//       Ο                          u+039F                   CF
//       ο                          u+03BF                   EF
//       Π                          u+03A0                   D0
//       π                          u+03C0                   F0
//       Ρ                          u+03A1                   D1
//       ρ                          u+03C1                   F1
//       Σ                          u+03A3                   D3
//       σ                          u+03C3                   F3
//       ς                          u+03C2                   F2
//       Τ                          u+03A4                   D4
//       τ                          u+03C4                   F4
//       Υ                          u+03A5                   D5
//       υ                          u+03C5                   F5
//       Φ                          u+03A6                   D6
//       φ                          u+03C6                   F6
//       Χ                          u+03A7                   D7
//       χ                          u+03C7                   F7
//       Ψ                          u+03A8                   D8
//       ψ                          u+03C8                   F8
//       Ω                          u+03A9                   D9
//       ω                          u+03C9                   F9
Imports System.Text

Module Example
   Public Sub Main()
      Dim enc As Encoding = Encoding.GetEncoding(1253)
      Dim altEnc As Encoding = Encoding.GetEncoding("windows-1253")
      Console.WriteLine("{0} = Code Page {1}: {2}", enc.EncodingName,
                        altEnc.CodePage, enc.Equals(altEnc))
      Dim greekAlphabet As String = "Α α Β β Γ γ Δ δ Ε ε Ζ ζ Η η " +
                                    "Θ θ Ι ι Κ κ Λ λ Μ μ Ν ν Ξ ξ " +
                                    "Ο ο Π π Ρ ρ Σ σ ς Τ τ Υ υ " +
                                    "Φ φ Χ χ Ψ ψ Ω ω"
      Console.OutputEncoding = Encoding.UTF8
      Dim bytes() As Byte = enc.GetBytes(greekAlphabet)
      Console.WriteLine("{0,-12} {1,20} {2,20:X2}", "Character",
                        "Unicode Code Point", "Code Page 1253")
      For ctr As Integer = 0 To bytes.Length - 1
         If greekAlphabet(ctr).Equals(" "c) Then Continue For

         Console.WriteLine("{0,-12} {1,20} {2,20:X2}", greekAlphabet(ctr),
                           GetCodePoint(greekAlphabet(ctr)), bytes(ctr))
      Next

   End Sub
   
   Private Function GetCodePoint(ch As String) As String
      Dim retVal As String = "u+"
      Dim bytes() As Byte = Encoding.Unicode.GetBytes(ch)
      For ctr As Integer = bytes.Length - 1 To 0 Step -1
         retVal += bytes(ctr).ToString("X2")
      Next
      Return retVal
   End Function
End Module
' The example displays the following output:
'    Character      Unicode Code Point       Code Page 1253
'    Α                          u+0391                   C1
'    α                          u+03B1                   E1
'    Β                          u+0392                   C2
'    β                          u+03B2                   E2
'    Γ                          u+0393                   C3
'    γ                          u+03B3                   E3
'    Δ                          u+0394                   C4
'    δ                          u+03B4                   E4
'    Ε                          u+0395                   C5
'    ε                          u+03B5                   E5
'    Ζ                          u+0396                   C6
'    ζ                          u+03B6                   E6
'    Η                          u+0397                   C7
'    η                          u+03B7                   E7
'    Θ                          u+0398                   C8
'    θ                          u+03B8                   E8
'    Ι                          u+0399                   C9
'    ι                          u+03B9                   E9
'    Κ                          u+039A                   CA
'    κ                          u+03BA                   EA
'    Λ                          u+039B                   CB
'    λ                          u+03BB                   EB
'    Μ                          u+039C                   CC
'    μ                          u+03BC                   EC
'    Ν                          u+039D                   CD
'    ν                          u+03BD                   ED
'    Ξ                          u+039E                   CE
'    ξ                          u+03BE                   EE
'    Ο                          u+039F                   CF
'    ο                          u+03BF                   EF
'    Π                          u+03A0                   D0
'    π                          u+03C0                   F0
'    Ρ                          u+03A1                   D1
'    ρ                          u+03C1                   F1
'    Σ                          u+03A3                   D3
'    σ                          u+03C3                   F3
'    ς                          u+03C2                   F2
'    Τ                          u+03A4                   D4
'    τ                          u+03C4                   F4
'    Υ                          u+03A5                   D5
'    υ                          u+03C5                   F5
'    Φ                          u+03A6                   D6
'    φ                          u+03C6                   F6
'    Χ                          u+03A7                   D7
'    χ                          u+03C7                   F7
'    Ψ                          u+03A8                   D8
'    ψ                          u+03C8                   F8
'    Ω                          u+03A9                   D9
'    ω                          u+03C9                   F9

Wenn die zu konvertierenden Daten nur in sequenziellen Blöcken (z. b. aus einem Stream gelesene Daten) verfügbar sind, oder wenn die Menge der Daten so groß ist, dass Sie in kleinere Blöcke aufgeteilt werden muss, sollten Sie den Decoder oder den bereitstellen, der Encoder von der- GetDecoder Methode bzw. der- GetEncoder Methode der abgeleiteten Klasse bereitgestellt wird.

Der UTF-16-und der UTF-32-Encoder können die Big-Endian-Byte Reihenfolge (signifikanteste Byte zuerst) oder die kleine Endian-Byte Reihenfolge (das am wenigsten signifikante Byte zuerst) verwenden. Beispielsweise wird der lateinische Großbuchstabe A (U + 0041) wie folgt serialisiert (in Hexadezimal):

  • UTF-16 Big-Endian-Byte Reihenfolge: 00 41

  • UTF-16 Little-Endian-Byte Reihenfolge: 41 00

  • UTF-32 Big Endian-Byte Reihenfolge: 00 00 00 41

  • UTF-32 Little-Endian-Byte Reihenfolge: 41 00 00 00

Es ist in der Regel effizienter, Unicode-Zeichen mithilfe der systemeigenen Byte Reihenfolge zu speichern. Beispielsweise ist es besser, die Little-Endian-Byte Reihenfolge auf kleinen Endian-Plattformen wie z. b. Intel-Computern zu verwenden.

Die- GetPreamble Methode ruft ein Bytearray ab, das die Byte Reihenfolge-Marke (BOM) enthält. Wenn dieses Bytearray einem codierten Stream vorangestellt wird, hilft es dem Decoder, das verwendete Codierungsformat zu identifizieren.

Weitere Informationen zur Byte Reihenfolge und zur Byte Reihenfolge-Markierung finden Sie im Unicode-Standard auf der Unicode-Homepage.

Beachten Sie, dass die Codierungs Klassen Fehler zulassen:

  • Wechseln Sie im Hintergrund zu einem "?"-Zeichen.

  • Verwenden Sie ein Zeichen mit der optimalen Anpassung.

  • Wechseln Sie zu einem anwendungsspezifischen Verhalten, indem Sie die EncoderFallback -Klasse und die- DecoderFallback Klasse mit dem Unicode-Ersatz Zeichen "U + FFFD" verwenden.

Sie sollten für jeden Datenstrom Fehler eine Ausnahme auslösen. Eine APP verwendet entweder das Flag "throwOnError", falls zutreffend, oder verwendet die EncoderExceptionFallback -Klasse und die- DecoderExceptionFallback Klasse. Der Fall Back am besten geeignet ist oft nicht empfehlenswert, da dies zu Datenverlusten oder Verwirrung führen kann und langsamer als einfache Zeichen Ersetzungen ist. Bei ANSI-Codierungen ist das beste Verhalten der Standardeinstellung.

Konstruktoren

Encoding()

Initialisiert eine neue Instanz der Encoding-Klasse.

Encoding(Int32)

Initialisiert eine neue Instanz der Encoding-Klasse, die der angegebenen Codepage entspricht.

Encoding(Int32, EncoderFallback, DecoderFallback)

Initialisiert eine neue Instanz der Encoding-Klasse, die der angegebenen Codepage entspricht, mit den angegebenen Fallbackstrategien für Codierer und Decodierer.

Eigenschaften

ASCII

Ruft eine Codierung für den ASCII-Zeichensatz (7-Bit) ab.

BigEndianUnicode

Ruft eine Codierung für das UTF-16-Format mit Big-Endian-Bytereihenfolge ab.

BodyName

Beim Überschreiben in einer abgeleiteten Klasse wird ein Name für die aktuelle Codierung abgerufen, die mit den Body-Tags des E-Mail-Agenten verwendet werden kann.

CodePage

Ruft den Codepagebezeichner der aktuellen Encoding-Klasse beim Überschreiben in einer abgeleiteten Klasse ab.

DecoderFallback

Ruft das DecoderFallback-Objekt für das aktuelle Encoding-Objekt ab.

Default

Ruft die Standardcodierung für diese .NET-Implementierung ab.

EncoderFallback

Ruft das EncoderFallback-Objekt für das aktuelle Encoding-Objekt ab.

EncodingName

Beim Überschreiben in einer abgeleiteten Klasse wird die Klartextbeschreibung der aktuellen Codierung abgerufen.

HeaderName

Beim Überschreiben in einer abgeleiteten Klasse wird ein Name für die aktuelle Codierung abgerufen, die mit den Header-Tags des E-Mail-Agenten verwendet werden kann.

IsBrowserDisplay

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert abgerufen, der angibt, ob die aktuelle Codierung von Browserclients zum Anzeigen des Inhalts verwendet werden kann.

IsBrowserSave

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert abgerufen, der angibt, ob die aktuelle Codierung von Browserclients zum Speichern von Inhalt verwendet werden kann.

IsMailNewsDisplay

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert abgerufen, der angibt, ob die aktuelle Codierung von Mail- und Newsclients zum Anzeigen von Inhalt verwendet werden kann.

IsMailNewsSave

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert abgerufen, der angibt, ob die aktuelle Codierung von Mail- und Newsclients zum Speichern von Inhalt verwendet werden kann.

IsReadOnly

Ruft beim Überschreiben in einer abgeleiteten Klasse einen Wert ab, der angibt, ob die aktuelle Codierung schreibgeschützt ist.

IsSingleByte

Ruft beim Überschreiben in einer abgeleiteten Klasse einen Wert ab, der angibt, ob die aktuelle Codierung Einzelbyte-Codepunkte verwendet.

Latin1

Ruft eine Codierung für den Zeichensatz Latin1 (ISO-8859-1) ab.

Preamble

Gibt beim Überschreiben in einer abgeleiteten Klasse eine Bytefolge zurück, die die verwendete Codierung angibt.

Unicode

Ruft eine Codierung für das UTF-16-Format in der Little-Endian-Bytereihenfolge ab.

UTF32

Ruft eine Codierung für das UTF-32-Format in der Little-Endian-Bytereihenfolge ab.

UTF7
Veraltet.

Ruft eine Codierung für das UTF-7-Format ab.

UTF8

Ruft eine Codierung für das UTF-8-Format ab.

WebName

Beim Überschreiben in einer abgeleiteten Klasse wird der Name für die aktuelle Codierung bei der Internet Assigned Numbers Authority (IANA) registriert.

WindowsCodePage

Beim Überschreiben in einer abgeleiteten Klasse wird die Codepage des Betriebssystems Windows abgerufen, die der aktuellen Codierung am ehesten entspricht.

Methoden

Clone()

Erstellt beim Überschreiben in einer abgeleiteten Klasse eine flache Kopie des aktuellen Encoding-Objekts.

Convert(Encoding, Encoding, Byte[])

Konvertiert ein vollständiges Bytearray aus einer Codierung in eine andere.

Convert(Encoding, Encoding, Byte[], Int32, Int32)

Konvertiert einen Bereich von Bytes in einem Bytearray aus einer Codierung in eine andere.

CreateTranscodingStream(Stream, Encoding, Encoding, Boolean)

Erstellt einen Stream, der zur Transcodierung von Daten zwischen einer inneren Encoding und einer äußeren Encoding dient, ähnlich wie Convert(Encoding, Encoding, Byte[]).

Equals(Object)

Bestimmt, ob das angegebene Object und die aktuelle Instanz gleich sind.

GetByteCount(Char*, Int32)

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Bytes, die beim Codieren der Zeichen ab dem Zeichenzeiger erzeugt werden.

GetByteCount(Char[])

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl an Bytes, die beim Codieren aller Zeichen im angegebenen Zeichenarray erzeugt werden.

GetByteCount(Char[], Int32, Int32)

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl an Bytes, die beim Codieren der Zeichen aus dem angegebenen Zeichenarray erzeugt werden.

GetByteCount(ReadOnlySpan<Char>)

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl an Bytes, die beim Codieren der Zeichen in der angegebenen Zeichenspanne erzeugt werden.

GetByteCount(String)

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Bytes, die beim Codieren der Zeichen in der angegebenen Zeichenfolge erzeugt werden.

GetByteCount(String, Int32, Int32)

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl an Bytes, die beim Codieren der Zeichen aus der angegebenen Zeichenspanne erzeugt werden.

GetBytes(Char*, Int32, Byte*, Int32)

Beim Überschreiben in einer abgeleiteten Klasse werden die Zeichen beginnend am angegebenen Zeichenzeiger in eine Bytefolge codiert, die ab Beginn des angegebenen Bytezeigers gespeichert wird.

GetBytes(Char[])

Beim Überschreiben in einer abgeleiteten Klasse werden alle Zeichen im angegebenen Zeichenarray in eine Bytefolge codiert.

GetBytes(Char[], Int32, Int32)

Beim Überschreiben in einer abgeleiteten Klasse werden die Zeichen im angegebenen Zeichenarray in eine Bytefolge codiert.

GetBytes(Char[], Int32, Int32, Byte[], Int32)

Beim Überschreiben in einer abgeleiteten Klasse werden die Zeichen aus dem angegebenen Zeichenarray in das angegebene Bytearray codiert.

GetBytes(ReadOnlySpan<Char>, Span<Byte>)

Codiert beim Überschreiben in einer abgeleiteten Klasse eine Gruppe von Zeichen aus der angegebenen schreibgeschützten Spanne in eine Bytespanne.

GetBytes(String)

Beim Überschreiben in einer abgeleiteten Klasse werden alle Zeichen in der angegebenen Zeichenfolge in eine Bytefolge codiert.

GetBytes(String, Int32, Int32)

Codiert beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Zeichen, die durch count in der angegebenen Zeichenfolge angegeben werden, ab dem angegebenen index in ein Bytearray.

GetBytes(String, Int32, Int32, Byte[], Int32)

Beim Überschreiben in einer abgeleiteten Klasse werden die Zeichen aus der angegebenen Zeichenfolge in das angegebene Bytearray codiert.

GetCharCount(Byte*, Int32)

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Zeichen, die beim Decodieren einer Bytefolge ab dem angegebenen Bytezeiger erzeugt werden.

GetCharCount(Byte[])

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Zeichen, die beim Decodieren aller Bytes in dem angegebenen Bytearray erzeugt werden.

GetCharCount(Byte[], Int32, Int32)

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Zeichen, die beim Decodieren einer Bytefolge aus dem angegebenen Bytearray erzeugt werden.

GetCharCount(ReadOnlySpan<Byte>)

Berechnet beim Überschreiben in einer abgeleiteten Klasse die Anzahl der Zeichen, die beim Decodieren der angegebenen schreibgeschützten Bytespanne erzeugt werden.

GetChars(Byte*, Int32, Char*, Int32)

Beim Überschreiben in einer abgeleiteten Klasse wird eine Bytefolge beginnend am angegebenen Bytezeiger in Zeichen decodiert, die ab Beginn des angegebenen Zeichenzeigers gespeichert werden.

GetChars(Byte[])

Beim Überschreiben in einer abgeleiteten Klasse werden alle Bytes im angegebenen Bytearray in Zeichen decodiert.

GetChars(Byte[], Int32, Int32)

Beim Überschreiben in einer abgeleiteten Klasse wird eine Bytefolge aus dem angegebenen Bytearray in Zeichen decodiert.

GetChars(Byte[], Int32, Int32, Char[], Int32)

Beim Überschreiben in einer abgeleiteten Klasse wird eine Bytefolge aus dem angegebenen Bytearray in das angegebene Zeichenarray decodiert.

GetChars(ReadOnlySpan<Byte>, Span<Char>)

Decodiert beim Überschreiben in einer abgeleiteten Klasse alle Bytes in der angegebenen schreibgeschützten Bytespanne in eine Zeichenspanne.

GetDecoder()

Beim Überschreiben in einer abgeleiteten Klasse wird ein Decoder abgerufen, der eine codierte Bytefolge in Zeichen konvertiert.

GetEncoder()

Beim Überschreiben in einer abgeleiteten Klasse wird ein Encoder abgerufen, der eine Folge von Unicode-Zeichen in eine codierte Bytefolge konvertiert.

GetEncoding(Int32)

Gibt die dem angegebenen Codepagebezeichner zugeordnete Codierung zurück.

GetEncoding(Int32, EncoderFallback, DecoderFallback)

Gibt die dem angegebenen Codepagebezeichner zugeordnete Codierung zurück. Parameter geben einen Fehlerhandler für Zeichen an, die nicht codiert werden können, und für Bytefolgen, die nicht decodiert werden können.

GetEncoding(String)

Gibt die dem angegebenen Codepagenamen zugeordnete Codierung zurück.

GetEncoding(String, EncoderFallback, DecoderFallback)

Gibt die dem angegebenen Codepagenamen zugeordnete Codierung zurück. Parameter geben einen Fehlerhandler für Zeichen an, die nicht codiert werden können, und für Bytefolgen, die nicht decodiert werden können.

GetEncodings()

Gibt ein Array zurück, das alle Codierungen enthält.

GetHashCode()

Gibt den Hashcode für die aktuelle Instanz zurück.

GetMaxByteCount(Int32)

Berechnet beim Überschreiben in einer abgeleiteten Klasse die maximale Anzahl der Bytes, die beim Codieren der angegebenen Anzahl von Zeichen erzeugt werden.

GetMaxCharCount(Int32)

Berechnet beim Überschreiben in einer abgeleiteten Klasse die maximale Anzahl an Zeichen, die beim Decodieren der angegebenen Anzahl von Bytes erzeugt werden.

GetPreamble()

Beim Überschreiben in einer abgeleiteten Klasse wird eine Bytefolge zurückgegeben, die die verwendete Codierung angibt.

GetString(Byte*, Int32)

Beim Überschreiben in einer abgeleiteten Klasse wird eine angegebene Anzahl von Bytes ab einer angegebenen Adresse in eine Zeichenfolge decodiert.

GetString(Byte[])

Beim Überschreiben in einer abgeleiteten Klasse werden alle Bytes im angegebenen Bytearray in eine Zeichenfolge decodiert.

GetString(Byte[], Int32, Int32)

Beim Überschreiben in einer abgeleiteten Klasse wird eine Bytefolge aus dem angegebenen Bytearray in eine Zeichenfolge decodiert.

GetString(ReadOnlySpan<Byte>)

Decodiert beim Überschreiben in einer abgeleiteten Klasse alle Bytes in der angegebenen Bytespanne in eine Zeichenfolge.

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IsAlwaysNormalized()

Ruft einen Wert ab, der angibt, ob die aktuelle Codierung immer normalisiert ist. Es wird die Standardnormalisierungsform verwendet.

IsAlwaysNormalized(NormalizationForm)

Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert abgerufen, der angibt, ob die aktuelle Codierung immer normalisiert ist. Hierzu wird die angegebene Normalisierungsform verwendet.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
RegisterProvider(EncodingProvider)

Registriert einen Codierungsanbieter.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
TryGetBytes(ReadOnlySpan<Char>, Span<Byte>, Int32)

Codiert einen Satz von Zeichen aus der angegebenen schreibgeschützten Spanne in eine Bytespanne, wenn das Ziel groß genug ist.

TryGetChars(ReadOnlySpan<Byte>, Span<Char>, Int32)

Decodiert einen Satz von Bytes aus der angegebenen schreibgeschützten Spanne in eine Spanne von Zeichen, wenn das Ziel groß genug ist.

Erweiterungsmethoden

GetBytes(Encoding, ReadOnlySequence<Char>)

Codiert die angegebene ReadOnlySequence<T> unter Verwendung der angegebenen Encoding in ein Byte-Array.

GetBytes(Encoding, ReadOnlySequence<Char>, IBufferWriter<Byte>)

Decodiert die angegebene ReadOnlySequence<T> in bytes unter Verwendung der angegebenen Encoding und schreibt das Ergebnis in writer.

GetBytes(Encoding, ReadOnlySequence<Char>, Span<Byte>)

Codiert die angegebene ReadOnlySequence<T> in bytes unter Verwendung der angegebenen Encoding und gibt das Ergebnis in bytes aus.

GetBytes(Encoding, ReadOnlySpan<Char>, IBufferWriter<Byte>)

Codiert die angegebene ReadOnlySpan<T> in bytes unter Verwendung der angegebenen Encoding und schreibt das Ergebnis in writer.

GetChars(Encoding, ReadOnlySequence<Byte>, IBufferWriter<Char>)

Decodiert die angegebene ReadOnlySequence<T> in chars unter Verwendung der angegebenen Encoding und schreibt das Ergebnis in writer.

GetChars(Encoding, ReadOnlySequence<Byte>, Span<Char>)

Decodiert die angegebene ReadOnlySequence<T> in chars unter Verwendung der angegebenen Encoding und gibt das Ergebnis in chars aus.

GetChars(Encoding, ReadOnlySpan<Byte>, IBufferWriter<Char>)

Decodiert die angegebene ReadOnlySpan<T> in chars unter Verwendung der angegebenen Encoding und schreibt das Ergebnis in writer.

GetString(Encoding, ReadOnlySequence<Byte>)

Decodiert die angegebene ReadOnlySequence<T> unter Verwendung der angegebenen Encoding in einen String.

Gilt für:

Weitere Informationen