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

Cur*_*urt 4 csv asp.net encoding

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

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

Lorem & Ipsum
£100
Run Code Online (Sandbox Code Playgroud)

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

Lorem & Ipsum
£100
Run Code Online (Sandbox Code Playgroud)

这是为什么,以及如何解决这个问题,以免Â出现角色?


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

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

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

das*_*ash 10

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

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

Response.ContentEncoding = System.Text.Encoding.GetEncoding(1252);
Run Code Online (Sandbox Code Playgroud)

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

您还可以使用web.config中的globalization元素在整个应用程序中一致地设置它.