当生成CSV时,磅标志显示为££

时间:2012-02-22 10:48:02

标签: asp.net encoding csv

我有一个脚本在我的网页上循环遍历GridView,并从值中生成一个CSV文件。

报告了一个问题,其中符号显示为编码,如:

Lorem & Ipsum
£100

我使用了Server.HtmlDecode(),这修复了解码后的值,修复了&符号,但英镑符号现在显示的是不同的符号:

Lorem & Ipsum
£100

为什么会这样,我该如何解决这个问题,以免出现Â字符?


我用来准备在CSV中使用的初始值的代码是:

Dim Str As String = String.Format("{0}", Server.HtmlDecode(value).Replace(",", "").Replace(Environment.NewLine, " ").Replace(Chr(10), " ").Replace(Chr(13), " "))

这解码HTML,替换任何逗号和换行符。

1 个答案:

答案 0 :(得分:10)

您的源字符串编码可能与输出编码不匹配。在您写出客户端之前设置内容编码,以避免产生您观察到的结果的编码更改。

您可以通过设置Response.ContentEncoding来完成此操作;例如:

Response.ContentEncoding = System.Text.Encoding.GetEncoding(1252);

将为您提供Windows 1252代码页。您也可以使用UTF-8和ISO 8559-1,或者您想要的任何其他编码。

您还可以使用web.config中的globalization元素在整个应用程序中设置此值。