中文字符在导出以擅长 ASP.NET 时变得不可读


public class HomeController : Controller
{        
    static List<User> GetUsers()
    {
        List<User> list = new List<User>() { 
        new User{Id=1,Name="张三"},
        new User{Id=2,Name="lisi"},
        new User{Id=3,Name="wangwu"}
        };
        return list;
    }
    public void SaveToExcel()
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("id").Append("t");
        sb.Append("name").Append("n");
        List<User> list = GetUsers();
        foreach (var item in list)
        {
            sb.Append(item.Id).Append("t");
            sb.Append(item.Name).Append("n");
        }
        Response.Clear();
        Response.Buffer = true;
        Response.Charset = "UTF-8";
        Response.ContentEncoding = Encoding.UTF8;
        Response.ContentType = "application/ms-excel";
        Response.AppendHeader("Content-Disposition", "attachment; filename=card.xls");
        Response.Write(sb.ToString());
        Response.End();
    }

中文字符在 excel 中显示为"????"。

您应该

使用Microsoft.Office.Interop.Excel或第三方库(如Open XML)来编写 excel,更多信息可以在这里找到:

如何在 ASP.NET C# 中创建 Excel 文件

您可以使用

Response.ContentEncoding = Encoding.Default;默认字符集应为 UTF-8

最新更新