texto - crear archivo csv c#
Crear archivo de texto sin BOM (1)
Bueno, escribe la lista de materiales porque lo está ordenando, en la línea
Encoding utf8WithoutBom = new UTF8Encoding(true);
true
significa que la BOM debe emitirse, utilizando
Encoding utf8WithoutBom = new UTF8Encoding(false);
no escribe BOM.
Mi objetivo es crear un archivo usando UTF-8 como codificación y 8859-1 como CharSet
Tristemente, esto no es posible, ya sea que escribas UTF-8 o no. Es decir, siempre que los caracteres que está escribiendo estén presentes en ISO Latin-1 se verá como un archivo ISO 8859-1, sin embargo, tan pronto como genere un carácter que no esté cubierto por ISO 8859-1 (por ejemplo, ä, ö, ü) estos caracteres se escribirán como un carácter multibyte.
Para escribir el verdadero uso de ISO-8859-1:
Encoding isoLatin1Encoding = Encoding.GetEncoding("ISO-8859-1");
Editar: después del comentario de balexandre
Usé el siguiente código para probar ...
var filePath = @"c:/temp/test.txt";
var sb = new StringBuilder();
sb.Append("dsfaskd jlsadfj laskjdflasjdf asdkfjalksjdf lkjdsfljas dddd jflasjdflkjasdlfkjasldfl asääääjdflkaslj d f");
Encoding isoLatin1Encoding = Encoding.GetEncoding("ISO-8859-1");
TextWriter tw = new StreamWriter(filePath, false, isoLatin1Encoding);
tw.WriteLine(sb.ToString());
tw.Close();
Y el archivo se ve perfectamente bien. Obviamente, debe usar la misma codificación al leer el archivo .
Probé este enfoque sin ningún éxito
el código que estoy usando:
// File name
String filename = String.Format("{0:ddMMyyHHmm}", dtFileCreated);
String filePath = Path.Combine(Server.MapPath("App_Data"), filename + ".txt");
// Process
myObject pbs = new myObject();
pbs.GenerateFile();
// pbs.GeneratedFile is a StringBuilder object
// Save file
Encoding utf8WithoutBom = new UTF8Encoding(true);
TextWriter tw = new StreamWriter(filePath, false, utf8WithoutBom);
foreach (string s in pbs.GeneratedFile.ToArray())
tw.WriteLine(s);
tw.Close();
// Push Generated File into Client
Response.Clear();
Response.ContentType = "application/vnd.text";
Response.AppendHeader("Content-Disposition", "attachment; filename=" + filename + ".txt");
Response.TransmitFile(filePath);
Response.End();
el resultado:
Está escribiendo el BOM sin importar qué, y los caracteres especiales (como Æ Ø Å) no son correctos: - /
¡Estoy atascado!
Mi objetivo es crear un archivo usando UTF-8 como codificación y 8859-1 como CharSet
¿Es esto tan difícil de lograr o solo estoy teniendo un mal día?
Toda ayuda es muy apreciada, ¡gracias!