首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UTF8在Excel中不起作用

UTF8在Excel中不起作用
EN

Stack Overflow用户
提问于 2011-11-01 18:33:24
回答 3查看 5.1K关注 0票数 2

在我的.net代码中,我使用

代码语言:javascript
复制
byte[] bytesToSend = System.Text.Encoding.UTF8.GetBytes(partialtorender);

然后我把它写得出众。

用“印地语”写的文本在excel中出现乱码,你能建议一下怎么做吗?

代码语言:javascript
复制
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;
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-01 20:58:54

尝试发出UTF-8前同步码,以向Excel指示正确的编码。此外,.xls是一种专有的二进制格式。您不能像在代码中那样只使用字符串变量。

下面是一个CSV文件导出的示例:

代码语言:javascript
复制
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");
}
票数 9
EN

Stack Overflow用户

发布于 2011-11-01 19:05:52

您的问题可能是XLS文件的默认编码是,而不是 UTF-8。请保存你得到的文件,并根据这篇文章打开它:Choose an encoding standard when you open a file这解决了你的问题吗?

票数 0
EN

Stack Overflow用户

发布于 2012-09-03 22:47:05

经过一番努力,我找到了解决方案。如果你看一下xls文件的文本,你会发现它不是一个格式良好的html,无论如何excel可以处理它。但我想我应该让excel知道它是utf-8。所以我使用了:

代码语言:javascript
复制
Response.Write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>");

在编写流的其余部分之前,它确实起作用了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7965202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档