我们正在将一些数据从网站应用程序导出到Excel电子表格,但是,当使用GBP符号时,它会输出“£9.99”而不是输出“£9.99”。

这是同事编写的用于生成电子表格的代码[tableOut是包含HTML表的StringBuilder]:

string filename = "EngageReplies.xls";
Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader( "content-disposition", "attachment;filename=" + filename );
Response.Charset = "UTF-8";
Response.ContentEncoding = System.Text.Encoding.UTF8;
this.EnableViewState = false;

Response.Write( tableOut );
Response.End();


有什么想法我们可以得到期望的输出吗?

ps。不知道是否应该将其分为一个单独的问题,但是在生成电子表格时,会触发警告消息:


  您尝试打开的文件,
  “ EngageReplies.xls”位于不同的位置
  格式比文件指定的格式
  延期。验证文件不是
  损坏且来自受信任的来源
  在打开文件之前。你想要
  立即打开文件?


我已经使用Firefox和IE在Office 2007中打开该文件。单击“是”可以打开该文件,但是如果我的用户不受该文件的影响,我希望使用它。

最佳答案

啊哈!

首先,我尝试删除Charset和CharacterEncoding,但仍然得到错误的输出,因此我将它们设置为以下内容,并且工作正常:

Response.Charset = "";
Response.ContentEncoding = System.Text.Encoding.Default;


感谢罗兰(Rowland)的灵感!

关于c# - 如何将英镑符号从C#Web应用正确导出到Excel? (产生的是£而不是£),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/772016/

10-10 16:40