如何定义csv文件的charset [英] How define charset of csv file

查看:80
本文介绍了如何定义csv文件的charset的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

<pre lang="xml">/// </summary>
   public class CsvRow : List<string>
   {
       public string LineText { get; set; }
   }

   /// <summary>
   /// Class to write data to a CSV file
   /// </summary>
   public class CsvFileWriter : StreamWriter
   {
       public CsvFileWriter(Stream stream)
           : base(stream)
       {
       }

       public CsvFileWriter(string filename)
           : base(filename)
       {
       }

       /// <summary>
       /// Writes a single row to a CSV file.
       /// </summary>
       /// <param name="row">The row to be written</param>
       public void WriteRow(CsvRow row)
       {
           StringBuilder builder = new StringBuilder();
           bool firstColumn = true;
           foreach (string value in row)
           {
               // Add separator if this isn't the first value
               if (!firstColumn)
                   builder.Append(';');
               // Implement special handling for values that contain comma or quote
               // Enclose in quotes and double up any double quotes
               if (value.IndexOfAny(new char[] {'"', ','}) != -1)
                   builder.AppendFormat("\"{0}\"", value.Replace("\"", "\"\""));
               else
                   builder.Append(value);
               firstColumn = false;
           }
           row.LineText = builder.ToString();
           WriteLine(row.LineText,Encoding.UTF8);
       }
   }










using (CsvFileWriter writer = new CsvFileWriter("WriteTest.csv"))
           {


                   for (int j = 0; j < toExcelData.Count; j++)
                   {
                       CsvRow row = new CsvRow();
                       string[] bufzz = toExcelData[j].Split(';');
                       for (int i = 0; i<bufzz.Length; i++)
                       {
                           //for (int h=0; h<)
                           row.Add(bufzz[i]);
                       }
                       writer.WriteRow(row);
                   }


           }





在cp-1251字符集中的csv文件数据。如何将其转换为utf8



In csv file data in cp-1251 charset. How convert it to utf8

推荐答案

StreamWriter 在其构造函数中采用编码:http://msdn.microsoft.com/en-us/library/system.io.streamwriter.streamwriter.aspx [ ^ ]
StreamWriter takes an encoding in its constructor : http://msdn.microsoft.com/en-us/library/system.io.streamwriter.streamwriter.aspx[^]


我真的不明白为什么你不能使用ReadAllLines / WriteAllLines而不是stremwriter。

http://msdn.microsoft.com/en-us/library/92e05ft3.aspx [ ^ ]



编码用于扭曲文件的是:
$ b $b¨ http://msdn.microsoft.com/ EN-US /库/ 3det53xh.aspx [< a href =http://msdn.microsoft.com/en-us/library/3det53xh.aspxtarget =_ blanktitle =新窗口> ^ ]
I dont really see why you cant use ReadAllLines/WriteAllLines instead of a stremwriter.
http://msdn.microsoft.com/en-us/library/92e05ft3.aspx[^]

The encoding for writhing files are:
¨http://msdn.microsoft.com/en-us/library/3det53xh.aspx[^]


这篇关于如何定义csv文件的charset的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆