我从数据库中返回一些数据,这些数据是使用许多不同的方法输入的,通常是从单词复制和粘贴的。
不是尝试手动HtmlEncode每个最后一个字符,我有一个好主意,使用页面上的内容类型加载不同的字符集。目前我没有做任何事情来覆盖任何默认内容类型。如果我在本地运行,则内容类型显示为utf-8,并显示“外来”字符。上传时,内容类型以ISO-8859-1的形式返回,“外国”字符显示为问号(两种......)。
然后我覆盖了使用Response.Charset = "utf-8";
返回的字符集,尽管响应标题正确显示了utf-8,但我仍然得到问号而不是正确的字符。请看下面的图片:
本地页面
本地页面标题
外部页面(注意两种类型的问号)
外部页面标题
我已经关注http://htmlpurifier.org/docs/enduser-utf8.html但除了需要UTF-8之外,我找不到任何解决方案。
答案 0 :(得分:0)
解决。仍然不确定一切是如何工作的,但我会解释我做了什么。
尽管标题说内容类型是UTF-8,但这并没有解决问题。正如Oded所暗示,我在IIS中找到了> .Net Globalization两个设置(请求和响应),设置为ISO-8859-1。
将这些改为UTF-8解决了这个问题。
至于为什么,我不确定,因为标题看起来是一样的,所以如果有人能够解释发生的事情会很棒。