我需要将DataTable
的内容写入csv。其中也有一些中文字符串。
我以前使用以下脚本:
System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(dlg.FileName);
string strHeader = "";
for (int s = 0; s < table.Columns.Count; s++)
{
strHeader += table.Columns[s].ColumnName + ",";
}
streamWriter.WriteLine(strHeader);
for (int m = 0; m < table.Rows.Count; m++)
{
string strRowValue = "";
for (int n = 0; n < table.Columns.Count; n++)
{
strRowValue += table.Rows[m][n] + ",";
}
streamWriter.WriteLine(strRowValue);
}
streamWriter.Close();
但这显然不能处理Unicode字符。它写的是æœç‹—
之类的东西。
所以我试着像这样设置编码:
System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(dlg.FileName, Encoding.UTF8);
然后我得到Argument 1: cannot convert from 'string' to 'System.IO.Stream
。那么我怎么能在这个例子中设置编码呢?
答案 0 :(得分:2)
System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(new FileStream(dlg.FileName, FileMode.Open), Encoding.UTF8);