2010-12-17 51 views

Respuesta

27

SuSanda,
No estoy seguro acerca de su código actual o su texto real que está tratando de guardar, pero esto podría llevarlo en la dirección correcta.

using(var sw = new StreamWriter("testfile_utf8.csv", false, Encoding.UTF8)) 
{ 
    sw.WriteLine("頼もう"); 
} 

Si abre ese archivo en Excel, se mostrará el texto en japonés como se esperaba.
Si no incluye el parámetro Encoding.UTF8, mostrará un galimatías.

Espero que sea eso lo que está buscando.

+3

use: 'new UTF8Encoding (false)' en lugar de 'Encoding.UTF8' si desea evitar el símbolo de la lista de materiales –

1
StringBuilder sb = new StringBuilder();   


var columnNames = dt.Columns.Cast<DataColumn>().Select(column => column.ColumnName).ToArray(); 
sb.AppendLine(string.Join(",", columnNames)); 

foreach (DataRow row in dt.Rows) 
{ 
    var fields = row.ItemArray.Select(field => field.ToString()).ToArray(); 
    sb.AppendLine(string.Join(",", fields)); 
} 

File.WriteAllText(fileName, sb.ToString(), Encoding.UTF8); 
3

Este código ayuda al texto de un archivo csv para guardarlo como un archivo csv codificado. Para usarlo Llame como se indica a continuación y guárdelo.

GetCSVFileContent ("Your_CSV_FileName")

protected byte[] GetCSVFileContent(string fileName) 
     { 
      StringBuilder sb = new StringBuilder(); 
      using (StreamReader sr = new StreamReader(fileName, Encoding.Default, true)) 
      { 
       String line; 
       // Read and display lines from the file until the end of 
       // the file is reached. 
       while ((line = sr.ReadLine()) != null) 
       { 
        sb.AppendLine(line); 
       } 
      } 
      string allines = sb.ToString(); 


      UTF8Encoding utf8 = new UTF8Encoding(); 


      var preamble = utf8.GetPreamble(); 

      var data = utf8.GetBytes(allines); 


      return data; 
     } 
+0

Advertencia: el preámbulo no se utiliza. Era importante usar el preámbulo en mi caso, los datos deben contarse desde preámbulo + datos: data = preamble .Concat (data) .ToArray(); – razon

Cuestiones relacionadas