我有一个脚本在我的网页上循环遍历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,替换任何逗号和换行符。
答案 0 :(得分:10)
您的源字符串编码可能与输出编码不匹配。在您写出客户端之前设置内容编码,以避免产生您观察到的结果的编码更改。
您可以通过设置Response.ContentEncoding来完成此操作;例如:
Response.ContentEncoding = System.Text.Encoding.GetEncoding(1252);
将为您提供Windows 1252代码页。您也可以使用UTF-8和ISO 8559-1,或者您想要的任何其他编码。
您还可以使用web.config中的globalization元素在整个应用程序中设置此值。