简体   繁体   中英

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

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

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.

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;
        }
 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);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM