ASCIIEncoding (Clase)
Ensamblado: mscorlib (en mscorlib.dll)
[SerializableAttribute] [ComVisibleAttribute(true)] public class ASCIIEncoding : Encoding
/** @attribute SerializableAttribute() */ /** @attribute ComVisibleAttribute(true) */ public class ASCIIEncoding extends Encoding
SerializableAttribute ComVisibleAttribute(true) public class ASCIIEncoding extends Encoding
Codificar es el proceso de transformar un conjunto de caracteres Unicode en una secuencia de bytes. Descodificar es el proceso inverso, es decir, 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: |
|---|
| ASCIIEncoding no proporciona detección de errores. Por motivos de seguridad, se recomienda utilizar UTF8Encoding, UnicodeEncoding o UTF32Encoding y habilitar la detección de errores. |
Nota: |
|---|
| ASCIIEncoding sólo admite valores de caracteres Unicode comprendidos entre U+0000 y U+007F. Por consiguiente, las clases UTF8Encoding, UnicodeEncoding y UTF32Encoding son más adecuadas para las aplicaciones globalizadas. |
El método GetByteCount determina el número de bytes resultante 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 de descodificar una secuencia de bytes, y los métodos GetChars y GetString realizan la descodificación real.
ASCIIEncoding corresponde a la página de código Windows 20127.
En el ejemplo siguiente se muestra cómo se codifican caracteres Unicode en caracteres ASCII. Advierta la pérdida de datos que se produce cuando se utiliza ASCIIEncoding para codificar caracteres Unicode que no pertenecen al intervalo de ASCII.
using System; using System.Text; class ASCIIEncodingExample { public static void Main() { // The encoding. ASCIIEncoding ascii = new ASCIIEncoding(); // A Unicode string with two characters outside the ASCII code range. String unicodeString = "This Unicode string contains two characters " + "with codes outside the ASCII code range, " + "Pi (\u03a0) and Sigma (\u03a3)."; Console.WriteLine("Original string:"); Console.WriteLine(unicodeString); // Save positions of the special characters for later reference. int indexOfPi = unicodeString.IndexOf('\u03a0'); int indexOfSigma = unicodeString.IndexOf('\u03a3'); // Encode string. Byte[] encodedBytes = ascii.GetBytes(unicodeString); Console.WriteLine(); Console.WriteLine("Encoded bytes:"); foreach (Byte b in encodedBytes) { Console.Write("[{0}]", b); } Console.WriteLine(); // Notice that the special characters have been replaced with // the value 63, which is the ASCII character code for '?'. Console.WriteLine(); Console.WriteLine( "Value at position of Pi character: {0}", encodedBytes[indexOfPi] ); Console.WriteLine( "Value at position of Sigma character: {0}", encodedBytes[indexOfSigma] ); // Decode bytes back to string. // Notice missing Pi and Sigma characters. String decodedString = ascii.GetString(encodedBytes); Console.WriteLine(); Console.WriteLine("Decoded bytes:"); Console.WriteLine(decodedString); } }
import System.*;
import System.Text.*;
import System.Byte;
class ASCIIEncodingExample
{
public static void main(String[] args)
{
// The encoding.
ASCIIEncoding ascii = new ASCIIEncoding();
// A Unicode string with two characters outside the ASCII code range.
String unicodeString = "This Unicode string contains two characters "
+ "with codes outside the ASCII code range, "
+ "Pi (\u03a0) and Sigma (\u03a3).";
Console.WriteLine("Original string:");
Console.WriteLine(unicodeString);
// Save positions of the special characters for later reference.
int indexOfPi = unicodeString.IndexOf('\u03a0');
int indexOfSigma = unicodeString.IndexOf('\u03a3');
// Encode string.
ubyte encodedBytes[] = ascii.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((Byte)b));
}
Console.WriteLine();
// Notice that the special characters have been replaced with
// the value 63, which is the ASCII character code for '?'.
Console.WriteLine();
Console.WriteLine("Value at position of Pi character: {0}",
encodedBytes.get_Item(indexOfPi));
Console.WriteLine("Value at position of Sigma character: {0}",
encodedBytes.get_Item(indexOfSigma));
// Decode bytes back to string.
// Notice missing Pi and Sigma characters.
String decodedString = ascii.GetString((ubyte[])encodedBytes);
Console.WriteLine();
Console.WriteLine("Decoded bytes:");
Console.WriteLine(decodedString);
} //main
} //ASCIIEncodingExample
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.Referencia
ASCIIEncoding (Miembros)System.Text (Espacio de nombres)
Decoder
Encoder
Precaución:
Nota: