Skip to content

Instantly share code, notes, and snippets.

@Fhernd
Last active August 29, 2015 14:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Fhernd/9863456ea7a1e455a258 to your computer and use it in GitHub Desktop.
Save Fhernd/9863456ea7a1e455a258 to your computer and use it in GitHub Desktop.
Demostración del proceso de conversión de esquemas de caracteres (códigos de página) en C#.
// ===++===
//
// OrtizOL
//
// ===--===
/*============================================================
//
// Clase: ConversionEsquemasCaracteres.cs
//
// Propósito: Demostrar la conversión entre esquemas
//
============================================================*/
using System;
using System.IO;
using System.Text;
namespace Recetas.Ch02
{
internal class ConversorEsquemasCaracteres
{
public static void Main()
{
// Craemos un archivo para guardar el contenido de las representaciones
using (StreamWriter archivoSalida = new StreamWriter("salida.txt"))
{
// Aquí creamos la cadena de caracteres con la fórmula del
// área de una esfera
string areaEsfera = "Área Esfera = 4*\u03A0 *r^2";
// Graba en el archivo la secuencia de caracteres de areaEsfera
archivoSalida.WriteLine("Texto original (fuente): {0}", areaEsfera);
// Ahora creamos el flujo de bytes que representa la cadena "Área Esfera = 4*\u03A0 *r^2"
byte[] bytesUtf16 = Encoding.Unicode.GetBytes(areaEsfera);
// Escribmos el nuevo flujo en el archivo de texto
archivoSalida.WriteLine("Bytes para UTF-16: {0}", BitConverter.ToString(bytesUtf16));
// Enseguida realizamos la conversión la cadena en areaEsfera (UTF-16) a UTF-8
byte[] bytesUtf8 = Encoding.UTF8.GetBytes(areaEsfera);
// Escribimos este flujo reciente en el archivo de texto
archivoSalida.WriteLine("Bytes para UTF-8: {0}", BitConverter.ToString(bytesUtf8));
// UTF-16 a ASCII
byte[] bytesAscii = Encoding.ASCII.GetBytes(areaEsfera);
// Escribimos en el archivo
archivoSalida.WriteLine("Bytes para ASCII: {0}", BitConverter.ToString(bytesAscii));
// Revertimos las conversiones
// UTF-8 a UTF-16
archivoSalida.WriteLine("Texto (UTF-16) para UTF-8: {0}", Encoding.UTF8.GetString(bytesUtf8));
// ASCII a UTF-16
archivoSalida.WriteLine("Texto (UTF-16) para ASCII: {0}", Encoding.ASCII.GetString(bytesAscii));
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment