UTF8Encoding Konstruktorer
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Initierar en ny instans av UTF8Encoding klassen.
Överlagringar
| Name | Description |
|---|---|
| UTF8Encoding() |
Initierar en ny instans av UTF8Encoding klassen. |
| UTF8Encoding(Boolean) |
Initierar en ny instans av UTF8Encoding klassen. En parameter anger om du vill ange ett Unicode-byteordningsmärke. |
| UTF8Encoding(Boolean, Boolean) |
Initierar en ny instans av UTF8Encoding klassen. Parametrar anger om du vill ange ett Unicode-byteordningsmärke och om ett undantag ska utlösas när en ogiltig kodning identifieras. |
UTF8Encoding()
- Källa:
- UTF8Encoding.cs
- Källa:
- UTF8Encoding.cs
- Källa:
- UTF8Encoding.cs
- Källa:
- UTF8Encoding.cs
- Källa:
- UTF8Encoding.cs
Initierar en ny instans av UTF8Encoding klassen.
public:
UTF8Encoding();
public UTF8Encoding();
Public Sub New ()
Exempel
I följande exempel skapas en ny UTF8Encoding instans och dess namn visas.
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
Kommentarer
Den här konstruktorn skapar en instans som inte anger ett Unicode-byteordningsmärke och inte utlöser ett undantag när en ogiltig kodning identifieras.
Caution
Av säkerhetsskäl rekommenderar vi att du aktiverar felidentifiering genom att anropa en konstruktor med en throwOnInvalidBytes parameter och ange dess värde till true.
Se även
Gäller för
UTF8Encoding(Boolean)
- Källa:
- UTF8Encoding.cs
- Källa:
- UTF8Encoding.cs
- Källa:
- UTF8Encoding.cs
- Källa:
- UTF8Encoding.cs
- Källa:
- UTF8Encoding.cs
Initierar en ny instans av UTF8Encoding klassen. En parameter anger om du vill ange ett Unicode-byteordningsmärke.
public:
UTF8Encoding(bool encoderShouldEmitUTF8Identifier);
public UTF8Encoding(bool encoderShouldEmitUTF8Identifier);
new System.Text.UTF8Encoding : bool -> System.Text.UTF8Encoding
Public Sub New (encoderShouldEmitUTF8Identifier As Boolean)
Parametrar
- encoderShouldEmitUTF8Identifier
- Boolean
true för att ange att GetPreamble() metoden returnerar en Unicode-byteordningsmarkering, falseannars .
Exempel
I följande exempel skapas en ny UTF8Encoding instans och anger att prefixet Unicode byte order mark ska genereras av GetPreamble metoden. Metoden GetPreamble returnerar sedan prefixet Unicode byte order mark.
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
Kommentarer
Den här konstruktorn skapar en instans som inte utlöser ett undantag när en ogiltig kodning identifieras.
Caution
Av säkerhetsskäl bör du aktivera felidentifiering genom att anropa en konstruktor som innehåller en throwOnInvalidBytes parameter och ange dess värde till true.
Parametern encoderShouldEmitUTF8Identifier styr metodens GetPreamble funktion. Om truereturnerar metoden en bytematris som innehåller Unicode byte order mark (BOM) i UTF-8-format. Om falsereturnerar den en bytematris med noll längd. Om du anger encoderShouldEmitUTF8Identifier till true gör GetBytes det dock inte att metoden prefixar bommen i början av bytematrisen, och det gör GetByteCount inte heller att metoden inkluderar antalet byte i strukturlistan i byteantalet.
Se även
Gäller för
UTF8Encoding(Boolean, Boolean)
- Källa:
- UTF8Encoding.cs
- Källa:
- UTF8Encoding.cs
- Källa:
- UTF8Encoding.cs
- Källa:
- UTF8Encoding.cs
- Källa:
- UTF8Encoding.cs
Initierar en ny instans av UTF8Encoding klassen. Parametrar anger om du vill ange ett Unicode-byteordningsmärke och om ett undantag ska utlösas när en ogiltig kodning identifieras.
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)
Parametrar
- encoderShouldEmitUTF8Identifier
- Boolean
true för att ange att GetPreamble() metoden ska returnera en Unicode-byteordningsmarkering, falseannars .
- throwOnInvalidBytes
- Boolean
trueför att utlösa ett undantag när en ogiltig kodning identifieras. annars . false
Exempel
I följande exempel skapas en ny UTF8Encoding instans som anger att GetPreamble metoden inte ska generera prefixet Unicode byte order mark och ett undantag ska genereras när en ogiltig kodning identifieras. Beteendet för den här konstruktorn jämförs med standardkonstruktorn UTF8Encoding() , som inte utlöser ett undantag när en ogiltig kodning identifieras. De två UTF8Encoding instanserna kodar en teckenmatris som innehåller två höga surrogater (U+D801 och U+D802) i en rad, vilket är en ogiltig teckensekvens. En hög surrogat bör alltid följas av en låg surrogat.
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.
Kommentarer
Parametern encoderShouldEmitUTF8Identifier styr metodens GetPreamble funktion. Om truereturnerar metoden en bytematris som innehåller Unicode byte order mark (BOM) i UTF-8-format. Om falsereturnerar den en bytematris med noll längd. Om du anger encoderShouldEmitUTF8Identifier till true gör GetBytes det dock inte att metoden prefixar bommen i början av bytematrisen, och det gör GetByteCount inte heller att metoden inkluderar antalet byte i strukturlistan i byteantalet.
Om throwOnInvalidBytes är trueutlöser en metod som identifierar en ogiltig bytesekvens ett System.ArgumentException undantag. I annat fall utlöser inte metoden något undantag och den ogiltiga sekvensen ignoreras.
Caution
Av säkerhetsskäl bör du aktivera felidentifiering genom att anropa en konstruktor som innehåller en throwOnInvalidBytes parameter och ange parametern till true.