UTF8Encoding Konstruktory
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Inicializuje novou instanci UTF8Encoding třídy.
Přetížení
| Name | Description |
|---|---|
| UTF8Encoding() |
Inicializuje novou instanci UTF8Encoding třídy. |
| UTF8Encoding(Boolean) |
Inicializuje novou instanci UTF8Encoding třídy. Parametr určuje, jestli má být zadán znak pořadí bajtů Unicode. |
| UTF8Encoding(Boolean, Boolean) |
Inicializuje novou instanci UTF8Encoding třídy. Parametry určují, zda má být zadán znak pořadí bajtů Unicode a zda se má vyvolat výjimka při zjištění neplatného kódování. |
UTF8Encoding()
- Zdroj:
- UTF8Encoding.cs
- Zdroj:
- UTF8Encoding.cs
- Zdroj:
- UTF8Encoding.cs
- Zdroj:
- UTF8Encoding.cs
- Zdroj:
- UTF8Encoding.cs
Inicializuje novou instanci UTF8Encoding třídy.
public:
UTF8Encoding();
public UTF8Encoding();
Public Sub New ()
Příklady
Následující příklad vytvoří novou UTF8Encoding instanci a zobrazí její název.
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
Poznámky
Tento konstruktor vytvoří instanci, která neposkytuje znak pořadí bajtů Unicode a nevyvolá výjimku při zjištění neplatného kódování.
Caution
Z bezpečnostních důvodů doporučujeme povolit detekci chyb voláním konstruktoru s parametrem throwOnInvalidBytes a nastavením jeho hodnoty na true.
Viz také
Platí pro
UTF8Encoding(Boolean)
- Zdroj:
- UTF8Encoding.cs
- Zdroj:
- UTF8Encoding.cs
- Zdroj:
- UTF8Encoding.cs
- Zdroj:
- UTF8Encoding.cs
- Zdroj:
- UTF8Encoding.cs
Inicializuje novou instanci UTF8Encoding třídy. Parametr určuje, jestli má být zadán znak pořadí bajtů Unicode.
public:
UTF8Encoding(bool encoderShouldEmitUTF8Identifier);
public UTF8Encoding(bool encoderShouldEmitUTF8Identifier);
new System.Text.UTF8Encoding : bool -> System.Text.UTF8Encoding
Public Sub New (encoderShouldEmitUTF8Identifier As Boolean)
Parametry
- encoderShouldEmitUTF8Identifier
- Boolean
true chcete-li určit, že GetPreamble() metoda vrátí znak pořadí bajtů Unicode; jinak , false.
Příklady
Následující příklad vytvoří novou UTF8Encoding instanci a určuje, že předpona značky pořadí bajtů Unicode by měla být generována GetPreamble metodou. Metoda GetPreamble pak vrátí předponu značky pořadí bajtů Unicode.
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
Poznámky
Tento konstruktor vytvoří instanci, která nevyvolá výjimku při zjištění neplatného kódování.
Caution
Zbezpečnostních throwOnInvalidBytestrue
Parametr encoderShouldEmitUTF8Identifier řídí operaci GetPreamble metody. Pokud truemetoda vrátí pole bajtů obsahující znak pořadí bajtů Unicode (BOM) ve formátu UTF-8. Pokud falsevrátí bajtovou matici nulové délky. Nastavení encoderShouldEmitUTF8Identifiertrue tak však nezpůsobí GetBytes , aby metoda předpona kusovníku na začátku pole bajtů, ani nezpůsobí GetByteCount , že metoda zahrne počet bajtů do kusovníku v počtu bajtů.
Viz také
Platí pro
UTF8Encoding(Boolean, Boolean)
- Zdroj:
- UTF8Encoding.cs
- Zdroj:
- UTF8Encoding.cs
- Zdroj:
- UTF8Encoding.cs
- Zdroj:
- UTF8Encoding.cs
- Zdroj:
- UTF8Encoding.cs
Inicializuje novou instanci UTF8Encoding třídy. Parametry určují, zda má být zadán znak pořadí bajtů Unicode a zda se má vyvolat výjimka při zjištění neplatného kódování.
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)
Parametry
- encoderShouldEmitUTF8Identifier
- Boolean
true určit, že GetPreamble() metoda by měla vrátit znak pořadí bajtů Unicode; jinak , false.
- throwOnInvalidBytes
- Boolean
truevyvolání výjimky při zjištění neplatného kódování; v opačném případě . false
Příklady
Následující příklad vytvoří novou UTF8Encoding instanci, která určuje, že GetPreamble metoda by neměla generovat předponu značky pořadí bajtů Unicode a při zjištění neplatného kódování by měla být vyvolána výjimka. Chování tohoto konstruktoru je porovnáno s výchozím UTF8Encoding() konstruktorem, který nevyvolá výjimku při zjištění neplatného kódování. UTF8Encoding Dvě instance kódují pole znaků, které obsahuje dva vysoké náhradní znaky (U+D801 a U+D802) v řádku, což je neplatná sekvence znaků. Za vysokou náhradou by vždy měla následovat nízká náhrada.
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.
Poznámky
Parametr encoderShouldEmitUTF8Identifier řídí operaci GetPreamble metody. Pokud truemetoda vrátí pole bajtů obsahující znak pořadí bajtů Unicode (BOM) ve formátu UTF-8. Pokud falsevrátí bajtovou matici nulové délky. Nastavení encoderShouldEmitUTF8Identifiertrue tak však nezpůsobí GetBytes , aby metoda předpona kusovníku na začátku pole bajtů, ani nezpůsobí GetByteCount , že metoda zahrne počet bajtů do kusovníku v počtu bajtů.
Pokud throwOnInvalidBytes je true, metoda, která zjistí neplatnou bajtovou sekvenci vyvolá System.ArgumentException výjimku. V opačném případě metoda nevyvolá výjimku a neplatná sekvence je ignorována.
Caution
Zbezpečnostních throwOnInvalidBytestrue