【发布时间】:2018-08-16 20:28:13
【问题描述】:
如果我只将字符串作为输入,则以下代码可以正常工作
Response.ContentType = "text/csv";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.AddHeader("Content-Disposition", "attachment; filename=WaitingForApproval_" + ".csv");
String output = "";
output += "Name, callNumber" + "\n";
output += "잘 지냈어요?,34343555" + "\n";
Response.Write(output);
Response.End();
using (StreamWriter sw = new StreamWriter(new FileStream("c:/Temp.csv", FileMode.Create), Encoding.UTF8))
{
sw.WriteLine(_exportedCSV);
}
但是当我尝试从代码生成字符串时,导出 csv 后它对我不起作用,它显示错误字符而不是原始字符-
string dataCSV = GenerateCSV();
using (StreamWriter sw = new StreamWriter(new FileStream("c:/Temp.csv", FileMode.Create), Encoding.UTF8))
{
sw.WriteLine(dataCSV);
}
public string GenerateCSV()
{
StringBuilder sb = new StringBuilder();
string Value = string.Empty;
sb.Append("sep=;");
sb.Append("\r\n");
// some logic to get string
return Convert.ToString(sb);
}
我在调试模式下从上面的代码中得到的实际字符串 -
sep=; Country;Korea;Name;잘 지냈어요?(HWR);
【问题讨论】:
-
我认为你应该在 GenerateCSV 函数中设置你的字符串生成器也可以使用 UTF-8
-
第二个例子是否包含
Response.ContentEncoding = System.Text.Encoding.UTF8? -
@Evenhuis:是的,包括在内。
-
"它显示错误的字符" - 什么时候看到的?在什么程序中打开?
标签: c# csv unicode unicode-string