UTF8Encoding Constructores
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Inicializa una nueva instancia de la clase UTF8Encoding.
Sobrecargas
UTF8Encoding() |
Inicializa una nueva instancia de la clase UTF8Encoding. |
UTF8Encoding(Boolean) |
Inicializa una nueva instancia de la clase UTF8Encoding. Un parámetro especifica si se proporciona una marca de orden de bytes Unicode. |
UTF8Encoding(Boolean, Boolean) |
Inicializa una nueva instancia de la clase UTF8Encoding. Algunos parámetros especifican si se proporciona una marca de orden de bytes Unicode y si debe producirse una excepción cuando se detecta una codificación no válida. |
UTF8Encoding()
Inicializa una nueva instancia de la clase UTF8Encoding.
public:
UTF8Encoding();
public UTF8Encoding ();
Public Sub New ()
Ejemplos
En el ejemplo siguiente se crea una nueva UTF8Encoding instancia y se muestra su nombre.
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
Comentarios
Este constructor crea una instancia que no proporciona una marca de orden de bytes Unicode y no produce una excepción cuando se detecta una codificación no válida.
Precaución
Por motivos de seguridad, se recomienda habilitar la detección de errores llamando a un constructor con un throwOnInvalidBytes
parámetro y estableciendo su valor en true
.
Consulte también
Se aplica a
UTF8Encoding(Boolean)
Inicializa una nueva instancia de la clase UTF8Encoding. Un parámetro especifica si se proporciona una marca de orden de bytes Unicode.
public:
UTF8Encoding(bool encoderShouldEmitUTF8Identifier);
public UTF8Encoding (bool encoderShouldEmitUTF8Identifier);
new System.Text.UTF8Encoding : bool -> System.Text.UTF8Encoding
Public Sub New (encoderShouldEmitUTF8Identifier As Boolean)
Parámetros
- encoderShouldEmitUTF8Identifier
- Boolean
Es true
para especificar que el método GetPreamble() devuelve una marca de orden de bytes Unicode; en caso contrario, es false
.
Ejemplos
En el ejemplo siguiente se crea una nueva UTF8Encoding instancia y se especifica que el GetPreamble método debe emitir un prefijo de marca de orden de bytes Unicode. A GetPreamble continuación, el método devuelve el prefijo de marca de orden de bytes Unicode.
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
Comentarios
Este constructor crea una instancia que no produce una excepción cuando se detecta una codificación no válida.
Precaución
Por motivos de seguridad, debe habilitar la detección de errores mediante una llamada a un constructor que incluya un throwOnInvalidBytes
parámetro y establezca su valor en true
.
El encoderShouldEmitUTF8Identifier
parámetro controla la operación del GetPreamble método . Si true
es , el método devuelve una matriz de bytes que contiene la marca de orden de bytes Unicode (BOM) en formato UTF-8. Si false
es , devuelve una matriz de bytes de longitud cero. Sin embargo, encoderShouldEmitUTF8Identifier
true
establecer en no hace que el GetBytes método prefijo la BOM al principio de la matriz de bytes, ni hace que el GetByteCount método incluya el número de bytes en la lista de bytes en el recuento de bytes.
Consulte también
Se aplica a
UTF8Encoding(Boolean, Boolean)
Inicializa una nueva instancia de la clase UTF8Encoding. Algunos parámetros especifican si se proporciona una marca de orden de bytes Unicode y si debe producirse una excepción cuando se detecta una codificación no válida.
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)
Parámetros
- encoderShouldEmitUTF8Identifier
- Boolean
Es true
para especificar que el método GetPreamble() debe devolver una marca de orden de bytes Unicode; en caso contrario, es false
.
- throwOnInvalidBytes
- Boolean
Es true
para que se produzca una excepción cuando se detecta una codificación no válida; en caso contrario, es false
.
Ejemplos
En el ejemplo siguiente se crea una nueva UTF8Encoding instancia, especificando que el GetPreamble método no debe emitir un prefijo de marca de orden de bytes Unicode y se debe producir una excepción cuando se detecta una codificación no válida. El comportamiento de este constructor se compara con el constructor predeterminado UTF8Encoding() , que no produce una excepción cuando se detecta una codificación no válida. Las dos UTF8Encoding instancias codifican una matriz de caracteres que contiene dos suplentes altos (U+D801 y U+D802) en una fila, que es una secuencia de caracteres no válida; un suplente alto siempre debe ir seguido de un suplente bajo.
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.
Comentarios
El encoderShouldEmitUTF8Identifier
parámetro controla la operación del GetPreamble método . Si true
es , el método devuelve una matriz de bytes que contiene la marca de orden de bytes Unicode (BOM) en formato UTF-8. Si false
es , devuelve una matriz de bytes de longitud cero. Sin embargo, encoderShouldEmitUTF8Identifier
true
establecer en no hace que el GetBytes método prefijo la BOM al principio de la matriz de bytes, ni hace que el GetByteCount método incluya el número de bytes en la lista de bytes en el recuento de bytes.
Si throwOnInvalidBytes
es true
, un método que detecta una secuencia de bytes no válida produce una System.ArgumentException excepción. De lo contrario, el método no inicia una excepción y se omite la secuencia no válida.
Precaución
Por motivos de seguridad, debe habilitar la detección de errores mediante una llamada a un constructor que incluya un throwOnInvalidBytes
parámetro y establezca ese parámetro en true
.