UTF8Encoding Конструкторы
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Инициализирует новый экземпляр класса UTF8Encoding.
Перегрузки
| Имя | Описание |
|---|---|
| UTF8Encoding() |
Инициализирует новый экземпляр класса UTF8Encoding. |
| UTF8Encoding(Boolean) |
Инициализирует новый экземпляр класса UTF8Encoding. Параметр указывает, следует ли указать знак порядка байтов Юникода. |
| UTF8Encoding(Boolean, Boolean) |
Инициализирует новый экземпляр класса UTF8Encoding. Параметры указывают, следует ли предоставлять метку порядка байтов Юникода и вызывать ли исключение при обнаружении недопустимой кодировки. |
UTF8Encoding()
- Исходный код:
- UTF8Encoding.cs
- Исходный код:
- UTF8Encoding.cs
- Исходный код:
- UTF8Encoding.cs
- Исходный код:
- UTF8Encoding.cs
- Исходный код:
- UTF8Encoding.cs
Инициализирует новый экземпляр класса UTF8Encoding.
public:
UTF8Encoding();
public UTF8Encoding();
Public Sub New ()
Примеры
В следующем примере создается новый UTF8Encoding экземпляр и отображается его имя.
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
Комментарии
Этот конструктор создает экземпляр, который не предоставляет метку порядка байтов Юникода и не создает исключение при обнаружении недопустимой кодировки.
Предостережение
По соображениям безопасности рекомендуется включить обнаружение ошибок, вызвав конструктор с параметром throwOnInvalidBytes и задав его значение true.
См. также раздел
Применяется к
UTF8Encoding(Boolean)
- Исходный код:
- UTF8Encoding.cs
- Исходный код:
- UTF8Encoding.cs
- Исходный код:
- UTF8Encoding.cs
- Исходный код:
- UTF8Encoding.cs
- Исходный код:
- UTF8Encoding.cs
Инициализирует новый экземпляр класса UTF8Encoding. Параметр указывает, следует ли указать знак порядка байтов Юникода.
public:
UTF8Encoding(bool encoderShouldEmitUTF8Identifier);
public UTF8Encoding(bool encoderShouldEmitUTF8Identifier);
new System.Text.UTF8Encoding : bool -> System.Text.UTF8Encoding
Public Sub New (encoderShouldEmitUTF8Identifier As Boolean)
Параметры
- encoderShouldEmitUTF8Identifier
- Boolean
true Значение , чтобы указать, что GetPreamble() метод возвращает знак порядка байтов Юникода; в противном случае false.
Примеры
В следующем примере создается новый UTF8Encoding экземпляр и указывается, что префикс порядка байтов Юникода должен быть создан методом GetPreamble . Затем метод 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
Комментарии
Этот конструктор создает экземпляр, который не создает исключение при обнаружении недопустимой кодировки.
Предостережение
По соображениям безопасности следует включить обнаружение ошибок путем вызова конструктора, включающего throwOnInvalidBytes параметр и устанавливающего его значение true.
Параметр encoderShouldEmitUTF8Identifier управляет операцией GetPreamble метода. Если trueметод возвращает массив байтов, содержащий метку порядка байтов Юникода (BOM) в формате UTF-8. Если falseон возвращает массив байтов нулевой длины. Однако параметр encoderShouldEmitUTF8Identifier не true приводит GetBytes к префиксу метода BOM в начале массива байтов, а также не приводит GetByteCount к тому, что метод включает число байтов в BOM в число байтов.
См. также раздел
Применяется к
UTF8Encoding(Boolean, Boolean)
- Исходный код:
- UTF8Encoding.cs
- Исходный код:
- UTF8Encoding.cs
- Исходный код:
- UTF8Encoding.cs
- Исходный код:
- UTF8Encoding.cs
- Исходный код:
- UTF8Encoding.cs
Инициализирует новый экземпляр класса UTF8Encoding. Параметры указывают, следует ли предоставлять метку порядка байтов Юникода и вызывать ли исключение при обнаружении недопустимой кодировки.
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)
Параметры
- encoderShouldEmitUTF8Identifier
- Boolean
true Значение , чтобы указать, что GetPreamble() метод должен возвращать знак порядка байтов Юникода; в противном случае false.
- throwOnInvalidBytes
- Boolean
true исключение при обнаружении недопустимой кодировки; falseв противном случае .
Примеры
В следующем примере создается новый UTF8Encoding экземпляр, указывающий, что GetPreamble метод не должен выдавать префикс порядка байтов Юникода, а исключение должно возникать при обнаружении недопустимой кодировки. Поведение этого конструктора сравнивается с конструктором по умолчанию UTF8Encoding() , который не создает исключение при обнаружении недопустимой кодировки. Два UTF8Encoding экземпляра кодируют массив символов, содержащий два высоких суррогата (U+D801 и U+D802) в строке, которая является недопустимой последовательностью символов; за высоким суррогатом всегда следует следовать низкому суррогату.
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.
Комментарии
Параметр encoderShouldEmitUTF8Identifier управляет операцией GetPreamble метода. Если trueметод возвращает массив байтов, содержащий метку порядка байтов Юникода (BOM) в формате UTF-8. Если falseон возвращает массив байтов нулевой длины. Однако параметр encoderShouldEmitUTF8Identifier не true приводит GetBytes к префиксу метода BOM в начале массива байтов, а также не приводит GetByteCount к тому, что метод включает число байтов в BOM в число байтов.
В противном throwOnInvalidBytestrueслучае метод, который обнаруживает недопустимую System.ArgumentException последовательность байтов, создает исключение. В противном случае метод не создает исключение, а недопустимая последовательность игнорируется.
Предостережение
По соображениям безопасности следует включить обнаружение ошибок путем вызова конструктора, включающего throwOnInvalidBytes параметр и устанавливающего этот параметр true.