1

使用 ASP.NET 从服务器端创建一个包含日文字符(UTF-8 字符集)的 CSV 文件。

代码:

public void ExportToCsv_Click(object sender, EventArgs e)
    {
        try
        {
        string sContents = string.Empty;
        string sTemp;

        for (int k = 1; k <= (ObjList.Columns.Count - 1); k++)
        {
            sContents += ObjList.HeaderRow.Cells[k].Text + ",";
        }

        sContents += "\r\n";

        for (int i = 0; i <= (ObjList.Rows.Count - 1); i++)
        {
            for (int j = 1; j <= (ObjList.Columns.Count - 1); j++)
            {
                sTemp = (ObjList.Rows[i].Cells[j].Text.ToString());
                if (sTemp == "&nbsp;")
                    sTemp = "";
                if (j < ObjList.Columns.Count - 1)
                    sTemp = (sTemp + ",");
                sContents += sTemp;
            }
            sContents += "\r\n";
        }

        Response.Clear();
        Response.ClearHeaders();
        Response.ClearContent();

        Response.AddHeader("Content-disposition", "attachment; filename=" + "partslist.csv");
        Response.ContentType = "application/csv";
        Response.Charset = "UTF-8";
        Response.ContentEncoding = System.Text.Encoding.UTF8  ;

        Response.Write(sContents);
        Response.Flush();
        Response.End();
        }
        catch (Exception ex)
        {
    throw new Exception(ex.Message);
    }
    }

但是,当在 Microsoft Excel 2003 中打开此文件时,它不能正确显示文件内容。

如何使excel正确打开这样的文件。帮助将不胜感激。

4

3 回答 3

1

只需\xfeff在开头添加即可。

于 2015-11-19T11:21:46.277 回答
0

请遵循以下程序:

  • 菜单 -> 数据 -> 获取外部数据 -> 从文本
  • 使用文件对话框选择您的 csv
  • 在文本导入向导的第 1 步中,选择“65001 : Unicode (UTF-8)”作为文件来源。
于 2013-07-02T12:18:38.290 回答
0

Excel 使用 SJIS(Shift JIS) 作为默认编码。
您可以尝试将 UTF-8 转换为 SJIS 或使用 UTF-8 的 BOM 创建 CSV 文件。
我能够用 BOM 打开 UTF-8 csv 文件。

于 2013-07-04T03:22:37.377 回答