c# - UTF8 在 Excel 中不起作用

标签 c# .net asp.net-mvc excel

在我使用的 .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/

相关文章:

c# - Liskov 替换和合成

c# - Type.GetType 不工作

c# - 当要滚动的项目太多时,Windows 窗体列表框会溢出

c# - WaitHandle 背后的基本概念是什么?

c# - 为什么 Linq to Entity Select Method 翻转投影列表属性?

c# - 如何强制缩进 C# 条件指令?

c# - 在 Unity 中,如何调用 firebase 异步函数并将值返回给调用函数?

c# - 如何列出省略属性访问器的接口(interface)方法

asp.net-mvc - asp.net mvc 通用 Controller

javascript - Jquery 删除突出显示的类不起作用