在streamwriter上设置UTF8编码

本文关键字:UTF8 编码 设置 streamwriter | 更新日期: 2023-09-27 18:27:06

我需要将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。那么,在这个例子中,我该如何设置编码呢?

在streamwriter上设置UTF8编码

System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(new FileStream(dlg.FileName, FileMode.Open), Encoding.UTF8);