在我使用的 .net 代码中
byte[] bytesToSend = System.Text.Encoding.UTF8.GetBytes(partialtorender);
然后我把它写成excel
“印地语”语言的文本在生成的 excel 中变得乱码,请问您能建议怎么做吗?
System.IO.MemoryStream memStr = new System.IO.MemoryStream();
memStr.Write(bytesToSend, 0, bytesToSend.Length);
memStr.Position = 0;
FileStreamResult result1 = new FileStreamResult(memStr, "application/ms-excel");
Response.AddHeader("content-disposition", "attachment; filename=" + "newExcelSheet" + ".xls");
return result1;
最佳答案
尝试发出 UTF-8 前导码以指示 Excel 的正确编码。 .xls 也是专有的二进制格式。您不能像在代码中那样只使用字符串变量。
这是一个 CSV 文件导出示例:
public ActionResult Index()
{
var csv = "मानक हिन्दी;some other value";
var data = Encoding.UTF8.GetBytes(csv);
data = Encoding.UTF8.GetPreamble().Concat(data).ToArray();
var cd = new ContentDisposition
{
Inline = false,
FileName = "newExcelSheet.csv"
};
Response.AddHeader("Content-Disposition", cd.ToString());
return File(data, "text/csv");
}
关于c# - UTF8 在 Excel 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7965202/