Freigeben über


Codieren von Basistypen

Zeichen sind abstrakte Einheiten, die mithilfe vieler verschiedener Zeichenschemas oder Codepages repräsentiert werden können. Beispielsweise stellt die Unicode-Zeichencodierung UTF-16 Zeichen als Folgen von 16-Bit-Ganzzahlen dar, wohingegen Unicode-UTF-8 die gleichen Zahlen als Folgen von 8-Bit-Bytes darstellt. Die Common Language Runtime verwendet zur Zeichendarstellung Unicode UTF-16 (Unicode Transformation Format, 16-Bit-Codierungsformular).

Anwendungen, die die Common Language Runtime als Ziel haben, ordnen die Zeichendarstellung des systemeigenen Zeichenschemas anderen Zeichenschemas mithilfe von Codierung zu. Um die Zeichendarstellung nicht systemeigener Zeichenschemas dem systemeigenen Schema zuzuordnen, wird Decodierung verwendet. In der folgenden Tabelle werden die am häufigsten im System.Text-Namespace zur Codierung und Decodierung von Zeichen verwendeten Klassen aufgelistet.

Zeichenschema Klasse Erklärung

ASCII-Codierung

System.Text.ASCIIEncoding

Konvertiert in bzw. aus ASCII-Zeichen.

Mehrfachcodierung

System.Text.Encoding

Konvertiert Zeichen in bzw. aus verschiedenen Codierungen, wie in der Convert-Methode angegeben.

UTF-16 Unicode-Codierung

System.Text.UnicodeEncoding

Konvertiert in bzw. aus UTF-16-Codierung. Dieses Schema stellt Zeichen als 16-Bit-Ganzzahlen dar.

UTF-8 Unicode-Codierung

System.Text.UTF8Encoding

Konvertiert in bzw. aus UTF-8-Codierung. Dieses breitenvariable Codierungsschema stellt Zeichen mit ein bis vier Bytes dar.

Im folgenden Codebeispiel wird eine Unicode-Zeichenfolge mithilfe der ASCIIEncoding.GetBytes-Methode in ein Bytearray konvertiert. Jedes Byte im Array stellt einen ASCII-Wert für den Buchstaben in der jeweiligen Position der Zeichenfolge dar.

Dim MyString As String = "Encoding String."
Dim AE As New ASCIIEncoding()
Dim ByteArray As Byte() = AE.GetBytes(MyString)
Dim x as Integer
For x = 0 To ByteArray.Length - 1
   Console.Write("{0} ", ByteArray(x))
Next
string MyString = "Encoding String.";
ASCIIEncoding AE = new ASCIIEncoding();
byte[] ByteArray = AE.GetBytes(MyString);
for(int x = 0;x <= ByteArray.Length - 1; x++)
{
   Console.Write("{0} ", ByteArray[x]);
}

Durch diesen Beispielcode wird Folgendes auf der Konsole angezeigt: Das Byte 69 ist der ASCII-Wert für das E-Zeichen, das Byte 110 der ASCII-Wert für das n-Zeichen usw.

69 110 99 111 100 105 110 103 32 83 116 114 105 110 103 46

Im folgenden Codebeispiel wird unter Verwendung der ASCIIEncoding-Klasse das vorangegangene Bytearray in ein Array von Zeichen konvertiert. Die GetChars-Methode wird zum Decodieren von Bytearrays verwendet.

Dim AE As New ASCIIEncoding()
Dim ByteArray As Byte() = { 69, 110, 99, 111, 100, 105, 110, 103, 32, 83, 116, 114, 105, 110, 103, 46 }
Dim CharArray As Char() = AE.GetChars(ByteArray)
Dim x As Integer
For x = 0 To CharArray.Length - 1
   Console.Write(CharArray(x))
Next
ASCIIEncoding AE = new ASCIIEncoding();
byte[] ByteArray = { 69, 110, 99, 111, 100, 105, 110, 103, 32, 83, 116, 114, 105, 110, 103, 46 };
char[] CharArray = AE.GetChars(ByteArray);
for(int x = 0;x <= CharArray.Length - 1; x++)
{
   Console.Write(CharArray[x]);
}

Durch oben stehenden Code wird der Text Encoding String. auf der Konsole angezeigt.

Siehe auch

Referenz

System.Text
System.Text.ASCIIEncoding
System.Text.Encoding
System.Text.UnicodeEncoding
System.Text.UTF7Encoding
System.Text.UTF8Encoding

Weitere Ressourcen

Arbeiten mit Basistypen