UTF8Encoding Konstruktoren
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.
Initialisiert eine neue Instanz der UTF8Encoding-Klasse.
Überlädt
UTF8Encoding() |
Initialisiert eine neue Instanz der UTF8Encoding-Klasse. |
UTF8Encoding(Boolean) |
Initialisiert eine neue Instanz der UTF8Encoding-Klasse. Ein Parameter gibt an, ob eine Unicode-Bytereihenfolgemarkierung bereitgestellt werden soll. |
UTF8Encoding(Boolean, Boolean) |
Initialisiert eine neue Instanz der UTF8Encoding-Klasse. Parameter geben an, ob eine Unicode-Bytereihenfolgemarkierung bereitgestellt werden soll und ob eine Ausnahme ausgelöst werden soll, wenn eine ungültige Codierung gefunden wird. |
UTF8Encoding()
- Quelle:
- UTF8Encoding.cs
- Quelle:
- UTF8Encoding.cs
- Quelle:
- UTF8Encoding.cs
Initialisiert eine neue Instanz der UTF8Encoding-Klasse.
public:
UTF8Encoding();
public UTF8Encoding ();
Public Sub New ()
Beispiele
Im folgenden Beispiel wird eine neue UTF8Encoding Instanz erstellt und ihr Name angezeigt.
using namespace System;
using namespace System::Text;
int main()
{
UTF8Encoding^ utf8 = gcnew UTF8Encoding;
String^ encodingName = utf8->EncodingName;
Console::WriteLine( "Encoding name: {0}", encodingName );
}
using System;
using System.Text;
class UTF8EncodingExample {
public static void Main() {
UTF8Encoding utf8 = new UTF8Encoding();
String encodingName = utf8.EncodingName;
Console.WriteLine("Encoding name: " + encodingName);
}
}
Imports System.Text
Class UTF8EncodingExample
Public Shared Sub Main()
Dim utf8 As New UTF8Encoding()
Dim encodingName As String = utf8.EncodingName
Console.WriteLine("Encoding name: " & encodingName)
End Sub
End Class
Hinweise
Dieser Konstruktor erstellt eine Instanz, die keine Unicode-Bytereihenfolgenmarkierung bereitstellt und keine Ausnahme auslöst, wenn eine ungültige Codierung erkannt wird.
Achtung
Aus Sicherheitsgründen wird empfohlen, die Fehlererkennung zu aktivieren, indem Sie einen Konstruktor mit einem throwOnInvalidBytes
Parameter aufrufen und dessen Wert auf true
festlegen.
Weitere Informationen
Gilt für:
UTF8Encoding(Boolean)
- Quelle:
- UTF8Encoding.cs
- Quelle:
- UTF8Encoding.cs
- Quelle:
- UTF8Encoding.cs
Initialisiert eine neue Instanz der UTF8Encoding-Klasse. Ein Parameter gibt an, ob eine Unicode-Bytereihenfolgemarkierung bereitgestellt werden soll.
public:
UTF8Encoding(bool encoderShouldEmitUTF8Identifier);
public UTF8Encoding (bool encoderShouldEmitUTF8Identifier);
new System.Text.UTF8Encoding : bool -> System.Text.UTF8Encoding
Public Sub New (encoderShouldEmitUTF8Identifier As Boolean)
Parameter
- encoderShouldEmitUTF8Identifier
- Boolean
true
, um anzugeben, dass die GetPreamble()-Methode eine Unicode-Bytereihenfolgemarkierung zurückgibt; andernfalls false
.
Beispiele
Im folgenden Beispiel wird eine neue UTF8Encoding Instanz erstellt und angegeben, dass ein Präfix für die Unicode-Bytereihenfolge von der GetPreamble -Methode ausgegeben werden soll. Die GetPreamble -Methode gibt dann das Präfix der Unicode-Bytereihenfolge zurück.
using namespace System;
using namespace System::Text;
using namespace System::Collections;
void ShowArray( Array^ theArray )
{
IEnumerator^ myEnum = theArray->GetEnumerator();
while ( myEnum->MoveNext() )
{
Object^ o = safe_cast<Object^>(myEnum->Current);
Console::Write( "[{0}]", o );
}
Console::WriteLine();
}
int main()
{
UTF8Encoding^ utf8 = gcnew UTF8Encoding;
UTF8Encoding^ utf8EmitBOM = gcnew UTF8Encoding( true );
Console::WriteLine( "utf8 preamble:" );
ShowArray( utf8->GetPreamble() );
Console::WriteLine( "utf8EmitBOM:" );
ShowArray( utf8EmitBOM->GetPreamble() );
}
using System;
using System.Text;
class UTF8EncodingExample {
public static void Main() {
UTF8Encoding utf8 = new UTF8Encoding();
UTF8Encoding utf8EmitBOM = new UTF8Encoding(true);
Console.WriteLine("utf8 preamble:");
ShowArray(utf8.GetPreamble());
Console.WriteLine("utf8EmitBOM:");
ShowArray(utf8EmitBOM.GetPreamble());
}
public static void ShowArray(Array theArray) {
foreach (Object o in theArray) {
Console.Write("[{0}]", o);
}
Console.WriteLine();
}
}
Imports System.Text
Class UTF8EncodingExample
Public Shared Sub Main()
Dim utf8 As New UTF8Encoding()
Dim utf8EmitBOM As New UTF8Encoding(True)
Console.WriteLine("utf8 preamble:")
ShowArray(utf8.GetPreamble())
Console.WriteLine("utf8EmitBOM:")
ShowArray(utf8EmitBOM.GetPreamble())
End Sub
Public Shared Sub ShowArray(theArray As Array)
Dim o As Object
For Each o In theArray
Console.Write("[{0}]", o)
Next o
Console.WriteLine()
End Sub
End Class
Hinweise
Dieser Konstruktor erstellt eine Instanz, die keine Ausnahme auslöst, wenn eine ungültige Codierung erkannt wird.
Achtung
Aus Sicherheitsgründen sollten Sie die Fehlererkennung aktivieren, indem Sie einen Konstruktor aufrufen, der einen throwOnInvalidBytes
Parameter enthält, und dessen Wert auf true
festlegen.
Der encoderShouldEmitUTF8Identifier
-Parameter steuert den Vorgang der GetPreamble -Methode. Wenn true
, gibt die Methode ein Bytearray zurück, das die Unicode-Bytereihenfolgemarkierung (BOM) im UTF-8-Format enthält. Wenn false
, gibt es ein Bytearray der Länge null zurück. Die Einstellung encoderShouldEmitUTF8Identifier
auf true
führt jedoch nicht dazu, dass die Methode der GetBytes BoM am Anfang des Bytearrays ein Präfix vorgibt, und die GetByteCount Methode schließt auch nicht die Anzahl der Bytes in der BoM in die Byteanzahl ein.
Weitere Informationen
Gilt für:
UTF8Encoding(Boolean, Boolean)
- Quelle:
- UTF8Encoding.cs
- Quelle:
- UTF8Encoding.cs
- Quelle:
- UTF8Encoding.cs
Initialisiert eine neue Instanz der UTF8Encoding-Klasse. Parameter geben an, ob eine Unicode-Bytereihenfolgemarkierung bereitgestellt werden soll und ob eine Ausnahme ausgelöst werden soll, wenn eine ungültige Codierung gefunden wird.
public:
UTF8Encoding(bool encoderShouldEmitUTF8Identifier, bool throwOnInvalidBytes);
public UTF8Encoding (bool encoderShouldEmitUTF8Identifier, bool throwOnInvalidBytes);
new System.Text.UTF8Encoding : bool * bool -> System.Text.UTF8Encoding
Public Sub New (encoderShouldEmitUTF8Identifier As Boolean, throwOnInvalidBytes As Boolean)
Parameter
- encoderShouldEmitUTF8Identifier
- Boolean
true
, um anzugeben, dass die GetPreamble()-Methode eine Unicode-Bytereihenfolgemarkierung zurückgeben sollte; andernfalls false
.
- throwOnInvalidBytes
- Boolean
true
, damit eine Ausnahme ausgelöst wird, wenn eine ungültige Codierung gefunden wird, andernfalls false
.
Beispiele
Im folgenden Beispiel wird eine neue UTF8Encoding Instanz erstellt, die angibt, dass die GetPreamble Methode kein Unicode-Bytereihenfolgemarkpräfix ausgeben soll, und eine Ausnahme ausgelöst werden soll, wenn eine ungültige Codierung erkannt wird. Das Verhalten dieses Konstruktors wird mit dem Standardkonstruktor UTF8Encoding() verglichen, der keine Ausnahme auslöst, wenn eine ungültige Codierung erkannt wird. Die beiden UTF8Encoding Instanzen codieren ein Zeichenarray, das zwei hohe Ersatzzeichen (U+D801 und U+D802) in einer Zeile enthält, was eine ungültige Zeichenfolge ist. Auf einen hohen Ersatz sollte immer ein niedriges Ersatzzeichen folgen.
using namespace System;
using namespace System::Text;
void ShowArray(Array^ theArray)
{
for each (Byte b in theArray) {
Console::Write( "{0:X2} ", b);
}
Console::WriteLine();
}
int main()
{
UTF8Encoding^ utf8 = gcnew UTF8Encoding;
UTF8Encoding^ utf8ThrowException = gcnew UTF8Encoding(false,true);
// This array contains two high surrogates in a row (\uD801, \uD802).
array<Char>^chars = {'a','b','c',L'\xD801',L'\xD802','d'};
// The following method call will not throw an exception.
array<Byte>^bytes = utf8->GetBytes( chars );
ShowArray( bytes );
Console::WriteLine();
try {
// The following method call will throw an exception.
bytes = utf8ThrowException->GetBytes( chars );
}
catch (EncoderFallbackException^ e ) {
Console::WriteLine("{0} exception\nMessage:\n{1}",
e->GetType()->Name, e->Message);
}
}
using System;
using System.Text;
class Example
{
public static void Main()
{
UTF8Encoding utf8 = new UTF8Encoding();
UTF8Encoding utf8ThrowException = new UTF8Encoding(false, true);
// Create an array with two high surrogates in a row (\uD801, \uD802).
Char[] chars = new Char[] {'a', 'b', 'c', '\uD801', '\uD802', 'd'};
// The following method call will not throw an exception.
Byte[] bytes = utf8.GetBytes(chars);
ShowArray(bytes);
Console.WriteLine();
try {
// The following method call will throw an exception.
bytes = utf8ThrowException.GetBytes(chars);
ShowArray(bytes);
}
catch (EncoderFallbackException e) {
Console.WriteLine("{0} exception\nMessage:\n{1}",
e.GetType().Name, e.Message);
}
}
public static void ShowArray(Array theArray) {
foreach (Object o in theArray)
Console.Write("{0:X2} ", o);
Console.WriteLine();
}
}
// The example displays the following output:
// 61 62 63 EF BF BD EF BF BD 64
//
// EncoderFallbackException exception
// Message:
// Unable to translate Unicode character \uD801 at index 3 to specified code page.
Imports System.Text
Class Example
Public Shared Sub Main()
Dim utf8 As New UTF8Encoding()
Dim utf8ThrowException As New UTF8Encoding(False, True)
' Create an array with two high surrogates in a row (\uD801, \uD802).
Dim chars() As Char = {"a"c, "b"c, "c"c, ChrW(&hD801), ChrW(&hD802), "d"c}
' The following method call will not throw an exception.
Dim bytes As Byte() = utf8.GetBytes(chars)
ShowArray(bytes)
Console.WriteLine()
Try
' The following method call will throw an exception.
bytes = utf8ThrowException.GetBytes(chars)
ShowArray(bytes)
Catch e As EncoderFallbackException
Console.WriteLine("{0} exception{2}Message:{2}{1}",
e.GetType().Name, e.Message, vbCrLf)
End Try
End Sub
Public Shared Sub ShowArray(theArray As Array)
For Each o In theArray
Console.Write("{0:X2} ", o)
Next
Console.WriteLine()
End Sub
End Class
' The example displays the following output:
' 61 62 63 EF BF BD EF BF BD 64
'
' EncoderFallbackException exception
' Message:
' Unable to translate Unicode character \uD801 at index 3 to specified code page.
Hinweise
Der encoderShouldEmitUTF8Identifier
-Parameter steuert den Vorgang der GetPreamble -Methode. Wenn true
, gibt die Methode ein Bytearray zurück, das die Unicode-Bytereihenfolgemarkierung (BOM) im UTF-8-Format enthält. Wenn false
, gibt es ein Bytearray der Länge null zurück. Die Einstellung encoderShouldEmitUTF8Identifier
auf true
führt jedoch nicht dazu, dass die Methode der GetBytes BoM am Anfang des Bytearrays ein Präfix vorgibt, und die GetByteCount Methode schließt auch nicht die Anzahl der Bytes in der BoM in die Byteanzahl ein.
Wenn throwOnInvalidBytes
ist, löst true
eine Methode, die eine ungültige Bytesequenz erkennt, eine Ausnahme aus System.ArgumentException . Andernfalls löst die Methode keine Ausnahme aus, und die ungültige Sequenz wird ignoriert.
Achtung
Aus Sicherheitsgründen sollten Sie die Fehlererkennung aktivieren, indem Sie einen Konstruktor aufrufen, der einen throwOnInvalidBytes
Parameter enthält, und diesen Parameter auf true
festlegen.