如何定义csv文件的charset [英] How define charset of csv file
本文介绍了如何定义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屋!
查看全文