Representa una codificación UTF-7 de caracteres Unicode.
Espacio de nombres: System.Text
Ensamblado: mscorlib (en mscorlib.dll)

Sintaxis
Visual Basic (Declaración)
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Class UTF7Encoding
Inherits Encoding
Dim instance As UTF7Encoding
[SerializableAttribute]
[ComVisibleAttribute(true)]
public class UTF7Encoding : Encoding
[SerializableAttribute]
[ComVisibleAttribute(true)]
public ref class UTF7Encoding : public Encoding
/** @attribute SerializableAttribute() */
/** @attribute ComVisibleAttribute(true) */
public class UTF7Encoding extends Encoding
SerializableAttribute
ComVisibleAttribute(true)
public class UTF7Encoding extends Encoding

Comentarios
Codificar es el proceso de transformar un conjunto de caracteres Unicode en una secuencia de bytes. Descodificar es el proceso inverso; es transformar una secuencia de bytes codificados en un conjunto de caracteres Unicode.
El estándar Unicode asigna un punto de código (un número) a cada carácter en todas las secuencias de comandos compatibles. Un Formato de transformación Unicode (UTF) es un método para codificar ese punto de código. El estándar Unicode versión 3.2 utiliza las siguientes codificaciones UTF:
-
UTF-8, que representa cada punto de código como una secuencia de uno a cuatro bytes.
-
UTF-16, que representa cada punto de código como una secuencia de uno a dos enteros de 16 bits.
-
UTF-32, que representa cada punto de código como un entero de 32 bits.
Precaución: |
|---|
| La codificación UTF-7 existe como respaldo de determinados protocolos para los que es necesaria. Suelen ser protocolos de correo electrónico o de grupo de noticias. Sin embargo, UTF-7 no es especialmente segura ni sólida. En algunas situaciones, cambiar un bit puede modificar radicalmente la interpretación de toda una cadena de UTF-7. En otras situaciones, cadenas de UTF-7 muy diferentes pueden codificar el mismo texto. Por consiguiente, no se debería utilizar UTF-7, en general, si hay otras opciones. UTF-8 debería preferirse normalmente a UTF-7. |
El método GetByteCount determina cuántos bytes resultan de codificar un conjunto de caracteres Unicode, y el método GetBytes realiza la codificación real.
Igualmente, el método GetCharCount determina el número de caracteres resultante en la descodificación de una secuencia de bytes, y los métodos GetChars y GetString realizan la descodificación real.
UTF7Encoding corresponde a la página de códigos 65000 de Windows.
Nota: |
|---|
| El estado de un objeto UTF-7 codificado no se conserva si el objeto se serializa y se deserializa utilizando distintas versiones de .NET Framework. |

Ejemplo
En el ejemplo de código siguiente se muestra la forma de utilizar UTF7Encoding para codificar una cadena de caracteres Unicode y guardarlos en una matriz de bytes. Tenga en cuenta que cuando se descodifica la matriz de bytes y se convierte nuevamente en una cadena, no hay pérdida de datos.
Imports System
Imports System.Text
Imports Microsoft.VisualBasic.Strings
Class UTF7EncodingExample
Public Shared Sub Main()
' Create a UTF-7 encoding.
Dim utf7 As New UTF7Encoding()
' A Unicode string with two characters outside a 7-bit code range.
Dim unicodeString As String = _
"This Unicode string contains two characters " & _
"with codes outside a 7-bit code range, " & _
"Pi (" & ChrW(928) & ") and Sigma (" & ChrW(931) & ")."
Console.WriteLine("Original string:")
Console.WriteLine(unicodeString)
' Encode the string.
Dim encodedBytes As Byte() = utf7.GetBytes(unicodeString)
Console.WriteLine()
Console.WriteLine("Encoded bytes:")
Dim b As Byte
For Each b In encodedBytes
Console.Write("[{0}]", b)
Next b
Console.WriteLine()
' Decode bytes back to string.
' Notice Pi and Sigma characters are still present.
Dim decodedString As String = utf7.GetString(encodedBytes)
Console.WriteLine()
Console.WriteLine("Decoded bytes:")
Console.WriteLine(decodedString)
End Sub
End Class
using System;
using System.Text;
class UTF7EncodingExample {
public static void Main() {
// Create a UTF-7 encoding.
UTF7Encoding utf7 = new UTF7Encoding();
// A Unicode string with two characters outside a 7-bit code range.
String unicodeString =
"This Unicode string contains two characters " +
"with codes outside a 7-bit code range, " +
"Pi (\u03a0) and Sigma (\u03a3).";
Console.WriteLine("Original string:");
Console.WriteLine(unicodeString);
// Encode the string.
Byte[] encodedBytes = utf7.GetBytes(unicodeString);
Console.WriteLine();
Console.WriteLine("Encoded bytes:");
foreach (Byte b in encodedBytes) {
Console.Write("[{0}]", b);
}
Console.WriteLine();
// Decode bytes back to string.
// Notice Pi and Sigma characters are still present.
String decodedString = utf7.GetString(encodedBytes);
Console.WriteLine();
Console.WriteLine("Decoded bytes:");
Console.WriteLine(decodedString);
}
}
using namespace System;
using namespace System::Text;
using namespace System::Collections;
int main()
{
// Create a UTF-7 encoding.
UTF7Encoding^ utf7 = gcnew UTF7Encoding;
// A Unicode string with two characters outside a 7-bit code range.
String^ unicodeString = L"This Unicode string contains two characters with codes outside a 7-bit code range, Pi (\u03a0) and Sigma (\u03a3).";
Console::WriteLine( "Original string:" );
Console::WriteLine( unicodeString );
// Encode the string.
array<Byte>^encodedBytes = utf7->GetBytes( unicodeString );
Console::WriteLine();
Console::WriteLine( "Encoded bytes:" );
IEnumerator^ myEnum = encodedBytes->GetEnumerator();
while ( myEnum->MoveNext() )
{
Byte b = safe_cast<Byte>(myEnum->Current);
Console::Write( "[{0}]", b );
}
Console::WriteLine();
// Decode bytes back to string.
// Notice Pi and Sigma characters are still present.
String^ decodedString = utf7->GetString( encodedBytes );
Console::WriteLine();
Console::WriteLine( "Decoded bytes:" );
Console::WriteLine( decodedString );
}
import System.*;
import System.Text.*;
class UTF7EncodingExample
{
public static void main(String[] args)
{
// Create a UTF-7 encoding.
UTF7Encoding utf7 = new UTF7Encoding();
// A Unicode string with two characters outside a 7-bit code range.
String unicodeString = "This Unicode string contains two characters "
+ "with codes outside a 7-bit code range, "
+ "Pi (\u03a0) and Sigma (\u03a3).";
Console.WriteLine("Original string:");
Console.WriteLine(unicodeString);
// Encode the string.
ubyte encodedBytes[] = utf7.GetBytes(unicodeString);
Console.WriteLine();
Console.WriteLine("Encoded bytes:");
for(int iCtr = 0; iCtr < encodedBytes.length; iCtr++) {
ubyte b = encodedBytes[iCtr];
Console.Write("[{0}]", String.valueOf(b));
}
Console.WriteLine();
// Decode bytes back to string.
// Notice Pi and Sigma characters are still present.
String decodedString = utf7.GetString(encodedBytes);
Console.WriteLine();
Console.WriteLine("Decoded bytes:");
Console.WriteLine(decodedString);
} //main
} //UTF7EncodingExample

Jerarquía de herencia

Seguridad para subprocesos
Los miembros estáticos públicos (
Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Plataformas
Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter
Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

Información de versión
.NET Framework
Compatible con: 3.0, 2.0, 1.1, 1.0
.NET Compact Framework
Compatible con: 2.0, 1.0
XNA Framework
Compatible con: 1.0

Vea también