How can I get CSV file encoding UTF-8 in C#.Net?

后端 未结 3 1598
Happy的楠姐
Happy的楠姐 2021-02-12 19:51

I wanna make CSV file encoding UTF-8. Now, my CSV file cannot show Japanese Fonts. I want C# code to solve this problem.

相关标签:
3条回答
  • 2021-02-12 20:36
     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);
    
    0 讨论(0)
  • 2021-02-12 20:48

    This code helps to text from a csv file to save it as a encoded csv file. To use it Call as below and save it.

    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 讨论(0)
  • 2021-02-12 20:51

    SuSanda,
    I'm not sure about your current code or your actual text you're trying to save, but this might get you in the right direction.

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

    If you open that file in Excel, it will show the Japanese text as expected.
    If you do not include the Encoding.UTF8 parameter, it will display gibberish.

    I hope that's what you're looking for.

    0 讨论(0)
提交回复
热议问题