3

我从网站 asp.net (C#) 导出 .xls 文件的功能有问题。
它将所有内容保存<tr>到一个字符串中。函数运行良好,但不能正确保存波兰字符(Ł、ó、ę - 等)。
我该如何解决这个问题?

这是我的代码:

string ExcelExport;
string StringExport;


 (..)

protected void lvUsers_ItemDataBound(object sender, ListViewItemEventArgs e)
{
    if (e.Item is ListViewDataItem)
    {
        (..)

        StringExport = StringExport + string.Format("<tr><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td></tr>", currentUser.name, currentUser.surname, tel, currentUser.email);
    }
}




protected void btnDownloadList_Click(object sender, EventArgs e)
{
    ExcelExport = "<table><tr><td>Name</td><td>Surname</td><td>Telephone</td><td>E-mail</td></tr><tr><td> </td><td> </td><td> </td><td> </td></tr>" + StringExport + "</table>";

    Response.AddHeader("Content-disposition", "attachment; filename=raport.xls");
    Response.Charset = "utf-8";
    Response.ContentType = "application/ms-excel";
    Response.Write(ExcelExport);
    Response.End();

}
4

2 回答 2

2

尝试按照此类似解决方案中的建议使用字节顺序标记 (BOM)

protected void btnDownloadList_Click(object sender, EventArgs e)
{
    ExcelExport = "<table><tr><td>Name</td><td>Surname</td><td>Telephone</td><td>E-mail</td></tr><tr><td> </td><td> </td><td> </td><td> </td></tr>" + StringExport + "</table>";

    Response.AddHeader("Content-disposition", "attachment; filename=raport.xls");
    Response.ContentType = "application/ms-excel";
    byte[] BOM = { 0xEF, 0xBB, 0xBF }; // The BOM for UTF-8 encoding.
    Response.BinaryWrite(BOM);
    Response.Write(ExcelExport);
    Response.End();

}
于 2012-11-06T16:02:29.723 回答
1

utf-8 字符集不包含波兰字符。快速搜索显示ISO 8859-2确实如此。我会尝试更改字符集并查看是否可以解决您的问题。

于 2012-11-06T15:59:47.407 回答