varios utf8 texto sublime extension convertir conversor como codificacion cambiar archivos archivo c# encoding character-encoding ascii

utf8 - Convertir un archivo de texto de ANSI a ASCII usando C#



convertir de ansi a utf 8 (2)

Básicamente, debe especificar una Encoding al leer / escribir el archivo. Por ejemplo:

// read with the **local** system default ANSI page string text = File.ReadAllText(path, Encoding.Default); // ** I''m not sure you need to do this next bit - it sounds like // you just want to read it? ** // write as ASCII (if you want to do this) File.WriteAllText(path2, text, Encoding.ASCII);

Tenga en cuenta que una vez que lo haya leído, el text es realmente unicode cuando está en la memoria.

Puedes elegir diferentes páginas de códigos usando Encoding.GetEncoding .

Tengo un archivo codificado ANSI y quiero convertir las líneas que leí del archivo a ASCII.

¿Cómo hago para hacer esto en C #?

EDITAR: ¿Qué sucede si uso "BinaryReader" BinaryReader reader = new BinaryReader(input, Encoding.Default); pero este lector toma (Stream, Encoding) pero "Stream" es un resumen! ¿Y dónde debo poner la ruta del archivo que leerá?


Una conversión directa de ANSI a ASCII puede no ser siempre posible, ya que ANSI es un superconjunto de ASCII.

Sin embargo, puedes intentar convertir a UTF-8 usando Encoding :

Encoding ANSI = Encoding.GetEncoding(1252); byte[] ansiBytes = ANSI.GetBytes(str); byte[] utf8Bytes = Encoding.Convert(ANSI, Encoding.UTF8, ansiBytes); String utf8String = Encoding.UTF8.GetString(utf8Bytes);

Por supuesto, puede reemplazar UTF8 con ASCII, pero eso no tiene sentido ya que:

  • Si la cadena original no contiene ningún byte> 126, entonces ya es ASCII
  • si la cadena original contiene uno o más bytes> 126, esos bytes se perderán

ACTUALIZAR:

En respuesta a la pregunta actualizada, puede usar BinaryReader así:

BinaryReader reader = new BinaryReader(File.Open("foo.txt", FileMode.Open), Encoding.GetEncoding(1252));