ASCIIEncoding Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt eine ASCII-Zeichencodierung von Unicode-Zeichen dar.
public ref class ASCIIEncoding : System::Text::Encoding
public class ASCIIEncoding : System.Text.Encoding
[System.Serializable]
public class ASCIIEncoding : System.Text.Encoding
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ASCIIEncoding : System.Text.Encoding
type ASCIIEncoding = class
inherit Encoding
[<System.Serializable>]
type ASCIIEncoding = class
inherit Encoding
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ASCIIEncoding = class
inherit Encoding
Public Class ASCIIEncoding
Inherits Encoding
- Vererbung
- Attribute
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie Unicode-Zeichen in ASCII codiert werden. Beachten Sie den Verlust von Daten, die auftreten, wenn Ihre Anwendung ASCIIEncoding unicode-Zeichen außerhalb des ASCII-Bereichs codiert.
using System;
using System.Text;
class ASCIIEncodingExample {
public static void Main() {
// The encoding.
ASCIIEncoding ascii = new ASCIIEncoding();
// A Unicode string with two characters outside the ASCII code range.
String unicodeString =
"This Unicode string contains two characters " +
"with codes outside the ASCII code range, " +
"Pi (\u03a0) and Sigma (\u03a3).";
Console.WriteLine("Original string:");
Console.WriteLine(unicodeString);
// Save positions of the special characters for later reference.
int indexOfPi = unicodeString.IndexOf('\u03a0');
int indexOfSigma = unicodeString.IndexOf('\u03a3');
// Encode string.
Byte[] encodedBytes = ascii.GetBytes(unicodeString);
Console.WriteLine();
Console.WriteLine("Encoded bytes:");
foreach (Byte b in encodedBytes) {
Console.Write("[{0}]", b);
}
Console.WriteLine();
// Notice that the special characters have been replaced with
// the value 63, which is the ASCII character code for '?'.
Console.WriteLine();
Console.WriteLine(
"Value at position of Pi character: {0}",
encodedBytes[indexOfPi]
);
Console.WriteLine(
"Value at position of Sigma character: {0}",
encodedBytes[indexOfSigma]
);
// Decode bytes back to string.
// Notice missing Pi and Sigma characters.
String decodedString = ascii.GetString(encodedBytes);
Console.WriteLine();
Console.WriteLine("Decoded bytes:");
Console.WriteLine(decodedString);
}
}
// The example displays the following output:
// Original string:
// This Unicode string contains two characters with codes outside the ASCII code ra
// nge, Pi (Π) and Sigma (Σ).
//
// Encoded bytes:
// [84][104][105][115][32][85][110][105][99][111][100][101][32][115][116][114][105]
// [110][103][32][99][111][110][116][97][105][110][115][32][116][119][111][32][99][
// 104][97][114][97][99][116][101][114][115][32][119][105][116][104][32][99][111][1
// 00][101][115][32][111][117][116][115][105][100][101][32][116][104][101][32][65][
// 83][67][73][73][32][99][111][100][101][32][114][97][110][103][101][44][32][80][1
// 05][32][40][63][41][32][97][110][100][32][83][105][103][109][97][32][40][63][41]
// [46]
//
// Value at position of Pi character: 63
// Value at position of Sigma character: 63
//
// Decoded bytes:
// This Unicode string contains two characters with codes outside the ASCII code ra
// nge, Pi (?) and Sigma (?).
Imports System.Text
Class ASCIIEncodingExample
Public Shared Sub Main()
' The encoding.
Dim ascii As New ASCIIEncoding()
' A Unicode string with two characters outside the ASCII code range.
Dim unicodeString As String = _
"This Unicode string contains two characters " & _
"with codes outside the ASCII code range, " & _
"Pi (" & ChrW(928) & ") and Sigma (" & ChrW(931) & ")."
Console.WriteLine("Original string:")
Console.WriteLine(unicodeString)
' Save positions of the special characters for later reference.
Dim indexOfPi As Integer = unicodeString.IndexOf(ChrW(928))
Dim indexOfSigma As Integer = unicodeString.IndexOf(ChrW(931))
' Encode string.
Dim encodedBytes As Byte() = ascii.GetBytes(unicodeString)
Console.WriteLine()
Console.WriteLine("Encoded bytes:")
Dim b As Byte
For Each b In encodedBytes
Console.Write("[{0}]", b)
Next b
Console.WriteLine()
' Notice that the special characters have been replaced with
' the value 63, which is the ASCII character code for '?'.
Console.WriteLine()
Console.WriteLine( _
"Value at position of Pi character: {0}", _
encodedBytes(indexOfPi) _
)
Console.WriteLine( _
"Value at position of Sigma character: {0}", _
encodedBytes(indexOfSigma) _
)
' Decode bytes back to string.
' Notice missing Pi and Sigma characters.
Dim decodedString As String = ascii.GetString(encodedBytes)
Console.WriteLine()
Console.WriteLine("Decoded bytes:")
Console.WriteLine(decodedString)
End Sub
End Class
' The example displays the following output:
' Original string:
' This Unicode string contains two characters with codes outside the ASCII code ra
' nge, Pi (Π) and Sigma (Σ).
'
' Encoded bytes:
' [84][104][105][115][32][85][110][105][99][111][100][101][32][115][116][114][105]
' [110][103][32][99][111][110][116][97][105][110][115][32][116][119][111][32][99][
' 104][97][114][97][99][116][101][114][115][32][119][105][116][104][32][99][111][1
' 00][101][115][32][111][117][116][115][105][100][101][32][116][104][101][32][65][
' 83][67][73][73][32][99][111][100][101][32][114][97][110][103][101][44][32][80][1
' 05][32][40][63][41][32][97][110][100][32][83][105][103][109][97][32][40][63][41]
' [46]
'
' Value at position of Pi character: 63
' Value at position of Sigma character: 63
'
' Decoded bytes:
' This Unicode string contains two characters with codes outside the ASCII code ra
' nge, Pi (?) and Sigma (?).
Hinweise
Die Codierung ist der Prozess der Transformation einer Reihe von Unicode-Zeichen in eine Folge von Bytes. Die Decodierung ist der Prozess der Transformation einer Sequenz codierter Bytes in eine Reihe von Unicode-Zeichen.
ASCIIEncoding entspricht der Windows-Codepage 20127. Da ASCII eine 7-Bit-Codierung ist, sind ASCII-Zeichen auf die niedrigsten 128 Unicode-Zeichen beschränkt, von U+0000 bis U+007F. Wenn Sie den Standard-Encoder verwenden, der von der Encoding.ASCII Eigenschaft oder dem ASCIIEncoding Konstruktor zurückgegeben wird, werden Zeichen außerhalb dieses Bereichs durch ein Fragezeichen (?) ersetzt, bevor der Codierungsvorgang ausgeführt wird. Da die ASCIIEncoding Klasse nur einen begrenzten Zeichensatz unterstützt, sind die UTF8EncodingKlassen UnicodeEncodingund UTF32Encoding Klassen besser für globalisierte Anwendungen geeignet. Die folgenden Überlegungen können Ihnen helfen zu entscheiden, ob Sie folgendes verwenden ASCIIEncodingmöchten:
Einige Protokolle erfordern ASCII oder eine Teilmenge von ASCII. In diesen Fällen ist DIE ASCII-Codierung geeignet.
Wenn eine 8-Bit-Codierung erwartet wird, ist ASCII wahrscheinlich nicht die richtige Wahl. Verwenden Sie stattdessen UTF8 anstelle von ASCII. Für die Zeichen U+0000 bis U+007F sind die Ergebnisse identisch, aber alle Unicode-Zeichen sind in UTF-8 dargestellt, wodurch Datenverlust vermieden wird.
Vorsicht
ASCIIEncoding stellt keine Fehlererkennung bereit. Aus Sicherheitsgründen sollten Sie die Fehlererkennung verwenden UTF8EncodingUnicodeEncodingoder UTF32Encoding aktivieren.
Die GetByteCount Methode bestimmt, wie viele Byte eine Reihe von Unicode-Zeichen codieren, und die GetBytes Methode führt die tatsächliche Codierung aus.
Ebenso bestimmt die GetCharCount Methode, wie viele Zeichen dazu führen, eine Bytesequenz zu decodieren, und die GetChars methoden GetString führen die eigentliche Decodierung aus.
Beachten Sie, dass der Standardkonstruktor ASCIIEncoding selbst möglicherweise nicht über das entsprechende Verhalten für Ihre Anwendung verfügt. Möglicherweise sollten Sie erwägen, die EncoderFallbackDecoderFallback Reihenfolge mit dem 8. Bit-Satz festzulegen EncoderExceptionFallback oder DecoderExceptionFallback zu verhindern. Benutzerdefiniertes Verhalten kann auch für diese Fälle geeignet sein.
Konstruktoren
| Name | Beschreibung |
|---|---|
| ASCIIEncoding() |
Initialisiert eine neue Instanz der ASCIIEncoding-Klasse. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| BodyName |
Wenn sie in einer abgeleiteten Klasse überschrieben werden, ruft sie einen Namen für die aktuelle Codierung ab, die mit Nachrichten-Agent-Texttags verwendet werden kann. (Geerbt von Encoding) |
| CodePage |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, ruft der Codeseitenbezeichner des aktuellen Encodingab. (Geerbt von Encoding) |
| DecoderFallback |
Dient zum Abrufen oder Festlegen des DecoderFallback Objekts für das aktuelle Encoding Objekt. (Geerbt von Encoding) |
| EncoderFallback |
Dient zum Abrufen oder Festlegen des EncoderFallback Objekts für das aktuelle Encoding Objekt. (Geerbt von Encoding) |
| EncodingName |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, ruft die lesbare Beschreibung der aktuellen Codierung ab. (Geerbt von Encoding) |
| HeaderName |
Wenn sie in einer abgeleiteten Klasse überschrieben werden, wird ein Name für die aktuelle Codierung angezeigt, die mit E-Mail-Agent-Headertags verwendet werden kann. (Geerbt von Encoding) |
| IsBrowserDisplay |
Wenn eine abgeleitete Klasse überschrieben wird, wird ein Wert abgerufen, der angibt, ob die aktuelle Codierung von Browserclients zum Anzeigen von Inhalten verwendet werden kann. (Geerbt von Encoding) |
| IsBrowserSave |
Wenn eine abgeleitete Klasse überschrieben wird, wird ein Wert abgerufen, der angibt, ob die aktuelle Codierung von Browserclients zum Speichern von Inhalten verwendet werden kann. (Geerbt von Encoding) |
| IsMailNewsDisplay |
Wenn eine abgeleitete Klasse überschrieben wird, wird ein Wert abgerufen, der angibt, ob die aktuelle Codierung von E-Mail- und Nachrichtenclients zum Anzeigen von Inhalten verwendet werden kann. (Geerbt von Encoding) |
| IsMailNewsSave |
Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert abgerufen, der angibt, ob die aktuelle Codierung von E-Mail- und Nachrichtenclients zum Speichern von Inhalten verwendet werden kann. (Geerbt von Encoding) |
| IsReadOnly |
Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert abgerufen, der angibt, ob die aktuelle Codierung schreibgeschützt ist. (Geerbt von Encoding) |
| IsSingleByte |
Ruft einen Wert ab, der angibt, ob die aktuelle Codierung Single-Byte-Codepunkte verwendet. |
| Preamble |
Wenn eine abgeleitete Klasse überschrieben wird, wird eine Spanne zurückgegeben, die die Sequenz von Bytes enthält, die die verwendete Codierung angibt. (Geerbt von Encoding) |
| WebName |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, ruft der Name ab, der bei der Internet Assigned Numbers Authority (IANA) für die aktuelle Codierung registriert ist. (Geerbt von Encoding) |
| WindowsCodePage |
Beim Überschreiben in einer abgeleiteten Klasse ruft die Windows-Betriebssystemcodeseite ab, die der aktuellen Codierung am ehesten entspricht. (Geerbt von Encoding) |
Methoden
| Name | Beschreibung |
|---|---|
| Clone() |
Wenn eine abgeleitete Klasse überschrieben wird, wird eine flache Kopie des aktuellen Encoding Objekts erstellt. (Geerbt von Encoding) |
| Equals(Object) |
Bestimmt, ob die angegebene Object Instanz gleich der aktuellen Instanz ist. (Geerbt von Encoding) |
| GetByteCount(Char[], Int32, Int32) |
Berechnet die Anzahl der Bytes, die durch Codieren einer Reihe von Zeichen aus dem angegebenen Zeichenarray erzeugt werden. |
| GetByteCount(Char[]) |
Wenn eine abgeleitete Klasse überschrieben wird, wird die Anzahl der Byte berechnet, die durch codieren aller Zeichen im angegebenen Zeichenarray erzeugt werden. (Geerbt von Encoding) |
| GetByteCount(Char*, Int32) |
Berechnet die Anzahl der Bytes, die durch Codieren einer Reihe von Zeichen erstellt werden, beginnend mit dem angegebenen Zeichenzeiger. |
| GetByteCount(ReadOnlySpan<Char>) |
Berechnet die Anzahl der Bytes, die durch codieren der angegebenen Zeichenspanne erzeugt werden. |
| GetByteCount(ReadOnlySpan<Char>) |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird die Anzahl der Bytes berechnet, die von der Codierung der Zeichen in der angegebenen Zeichenspanne erzeugt werden. (Geerbt von Encoding) |
| GetByteCount(String, Int32, Int32) |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird die Anzahl der Bytes berechnet, die durch codieren einer Reihe von Zeichen aus der angegebenen Zeichenfolge erzeugt werden. (Geerbt von Encoding) |
| GetByteCount(String) |
Berechnet die Anzahl der Byte, die durch codieren die Zeichen in der angegebenen String. |
| GetBytes(Char[], Int32, Int32, Byte[], Int32) |
Codiert eine Reihe von Zeichen aus dem angegebenen Zeichenarray in das angegebene Bytearray. |
| GetBytes(Char[], Int32, Int32) |
Wenn eine abgeleitete Klasse überschrieben wird, codiert eine Reihe von Zeichen aus dem angegebenen Zeichenarray in eine Folge von Bytes. (Geerbt von Encoding) |
| GetBytes(Char[]) |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, werden alle Zeichen im angegebenen Zeichenarray in eine Folge von Bytes codiert. (Geerbt von Encoding) |
| GetBytes(Char*, Int32, Byte*, Int32) |
Codiert eine Reihe von Zeichen, die mit dem angegebenen Zeichenzeiger beginnen, in eine Abfolge von Bytes, die ab dem angegebenen Bytezeiger gespeichert werden. |
| GetBytes(ReadOnlySpan<Char>, Span<Byte>) |
Codiert den angegebenen Zeichenbereich in die angegebene Bytespanne. |
| GetBytes(ReadOnlySpan<Char>, Span<Byte>) |
Wenn sie in einer abgeleiteten Klasse überschrieben werden, codiert sie in einer Reihe von Bytes, die aus der angegebenen schreibgeschützten Spanne stammen. (Geerbt von Encoding) |
| GetBytes(String, Int32, Int32, Byte[], Int32) |
Codiert eine Reihe von Zeichen aus dem angegebenen String Bytearray. |
| GetBytes(String, Int32, Int32) |
Wenn sie in einer abgeleiteten Klasse überschrieben werden, codiert sie in ein Bytearray, das von der angegebenen Zeichenfolge ausgehend von |
| GetBytes(String) |
Wenn sie in einer abgeleiteten Klasse außer Kraft gesetzt wird, codiert sie alle Zeichen in der angegebenen Zeichenfolge in eine Folge von Bytes. (Geerbt von Encoding) |
| GetCharCount(Byte[], Int32, Int32) |
Berechnet die Anzahl der Zeichen, die durch Decodieren einer Bytesequenz aus dem angegebenen Bytearray erzeugt werden. |
| GetCharCount(Byte[]) |
Wenn eine abgeleitete Klasse überschrieben wird, wird die Anzahl der Zeichen berechnet, die durch Decodieren aller Bytes im angegebenen Bytearray erzeugt werden. (Geerbt von Encoding) |
| GetCharCount(Byte*, Int32) |
Berechnet die Anzahl der Zeichen, die durch Decodieren einer Bytesequenz erzeugt werden, beginnend mit dem angegebenen Bytezeiger. |
| GetCharCount(ReadOnlySpan<Byte>) |
Berechnet die Anzahl der Zeichen, die durch Decodieren des angegebenen Bytebereichs erzeugt werden. |
| GetCharCount(ReadOnlySpan<Byte>) |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird die Anzahl der Zeichen berechnet, die durch Decodieren der bereitgestellten schreibgeschützten Bytespanne erzeugt werden. (Geerbt von Encoding) |
| GetChars(Byte[], Int32, Int32, Char[], Int32) |
Decodiert eine Abfolge von Bytes aus dem angegebenen Bytearray in das angegebene Zeichenarray. |
| GetChars(Byte[], Int32, Int32) |
Wenn eine abgeleitete Klasse überschrieben wird, decodiert eine Bytesequenz aus dem angegebenen Bytearray in eine Reihe von Zeichen. (Geerbt von Encoding) |
| GetChars(Byte[]) |
Wenn sie in einer abgeleiteten Klasse außer Kraft gesetzt wird, decodieren Sie alle Bytes im angegebenen Bytearray in eine Reihe von Zeichen. (Geerbt von Encoding) |
| GetChars(Byte*, Int32, Char*, Int32) |
Decodiert eine Abfolge von Bytes ab dem angegebenen Bytezeiger in eine Reihe von Zeichen, die beginnend mit dem angegebenen Zeichenzeiger gespeichert werden. |
| GetChars(ReadOnlySpan<Byte>, Span<Char>) |
Decodiert den angegebenen Bytebereich in den angegebenen Zeichenbereich. |
| GetChars(ReadOnlySpan<Byte>, Span<Char>) |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, decodieren Sie alle Bytes im angegebenen schreibgeschützten Bytebereich in eine Zeichenspanne. (Geerbt von Encoding) |
| GetDecoder() |
Ruft einen Decoder ab, der eine ASCII-codierte Bytesequenz in eine Sequenz von Unicode-Zeichen konvertiert. |
| GetDecoder() |
Wenn eine abgeleitete Klasse überschrieben wird, wird ein Decoder abgerufen, der eine codierte Bytesequenz in eine Abfolge von Zeichen konvertiert. (Geerbt von Encoding) |
| GetEncoder() |
Ruft einen Encoder ab, der eine Sequenz von Unicode-Zeichen in eine ASCII-codierte Folge von Bytes konvertiert. |
| GetEncoder() |
Wenn eine abgeleitete Klasse überschrieben wird, wird ein Encoder abgerufen, der eine Sequenz von Unicode-Zeichen in eine codierte Bytesequenz konvertiert. (Geerbt von Encoding) |
| GetHashCode() |
Gibt den Hashcode für die aktuelle Instanz zurück. (Geerbt von Encoding) |
| GetMaxByteCount(Int32) |
Berechnet die maximale Anzahl von Byte, die durch die Codierung der angegebenen Anzahl von Zeichen erzeugt werden. |
| GetMaxCharCount(Int32) |
Berechnet die maximale Anzahl von Zeichen, die durch Decodieren der angegebenen Anzahl von Bytes erzeugt werden. |
| GetPreamble() |
Wenn eine abgeleitete Klasse überschrieben wird, wird eine Bytesequenz zurückgegeben, die die verwendete Codierung angibt. (Geerbt von Encoding) |
| GetString(Byte[], Int32, Int32) |
Decodiert einen Bytebereich von einem Bytearray in eine Zeichenfolge. |
| GetString(Byte[]) |
Stellt eine ASCII-Zeichencodierung von Unicode-Zeichen dar. |
| GetString(Byte[]) |
Wenn sie in einer abgeleiteten Klasse außer Kraft gesetzt wird, decodieren Sie alle Bytes im angegebenen Bytearray in eine Zeichenfolge. (Geerbt von Encoding) |
| GetString(Byte*, Int32) |
Wenn sie in einer abgeleiteten Klasse außer Kraft gesetzt wird, decodieren Sie eine angegebene Anzahl von Bytes beginnend mit einer angegebenen Adresse in eine Zeichenfolge. (Geerbt von Encoding) |
| GetString(ReadOnlySpan<Byte>) |
Wenn sie in einer abgeleiteten Klasse überschrieben wird, decodieren Sie alle Bytes im angegebenen Bytebereich in eine Zeichenfolge. (Geerbt von Encoding) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| IsAlwaysNormalized() |
Ruft einen Wert ab, der angibt, ob die aktuelle Codierung immer normalisiert ist, mithilfe des Standardnormalisierungsformulars. (Geerbt von Encoding) |
| IsAlwaysNormalized(NormalizationForm) |
Wenn eine abgeleitete Klasse überschrieben wird, wird ein Wert abgerufen, der angibt, ob die aktuelle Codierung immer normalisiert ist, mithilfe des angegebenen Normalisierungsformulars. (Geerbt von Encoding) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
| TryGetBytes(ReadOnlySpan<Char>, Span<Byte>, Int32) |
Codiert in eine Spanne von Bytes, die eine Reihe von Zeichen aus der angegebenen schreibgeschützten Spanne umfasst, wenn das Ziel groß genug ist. |
| TryGetChars(ReadOnlySpan<Byte>, Span<Char>, Int32) |
Decodiert eine Reihe von Zeichen, die eine Gruppe von Bytes aus der angegebenen schreibgeschützten Spanne umfassen, wenn das Ziel groß genug ist. |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| GetBytes(Encoding, ReadOnlySequence<Char>, IBufferWriter<Byte>) |
Decodiert den angegebenen ReadOnlySequence<T> wert mit dem angegebenen Encoding Wert und schreibt das Ergebnis in |
| GetBytes(Encoding, ReadOnlySequence<Char>, Span<Byte>) |
Codiert den angegebenen ReadOnlySequence<T> wert |
| GetBytes(Encoding, ReadOnlySequence<Char>) |
Codiert den angegebenen ReadOnlySequence<T> Wert mithilfe des angegebenen EncodingArrays in ein Byte Array. |
| GetBytes(Encoding, ReadOnlySpan<Char>, IBufferWriter<Byte>) |
Codiert den angegebenen ReadOnlySpan<T> wert |
| GetChars(Encoding, ReadOnlySequence<Byte>, IBufferWriter<Char>) |
Decodiert den angegebenen ReadOnlySequence<T> wert mit dem angegebenen Encoding Wert und schreibt das Ergebnis in |
| GetChars(Encoding, ReadOnlySequence<Byte>, Span<Char>) |
Decodiert die angegebenen ReadOnlySequence<T> zu s angegebenen Daten, Encoding und gibt das Ergebnis in |
| GetChars(Encoding, ReadOnlySpan<Byte>, IBufferWriter<Char>) |
Decodiert den angegebenen ReadOnlySpan<T> wert mit dem angegebenen Encoding Wert und schreibt das Ergebnis in |
| GetString(Encoding, ReadOnlySequence<Byte>) |
Decodiert den angegebenen ReadOnlySequence<T> Wert mit dem String angegebenen Encoding. |