1

我正在从数据库中返回一些数据,这些数据是使用许多不同的方法输入的,通常是从 word 中复制和粘贴的。

我没有尝试手动对每个最后一个字符进行 HtmlEncode 编码,而是使用页面上的内容类型来加载不同的字符集。目前我没有做任何事情来覆盖任何默认的内容类型。如果我在本地运行,内容类型显示为 utf-8 并且出现“外来”字符。上传后,内容类型以 ISO-8859-1 形式返回,“外来”字符显示为问号(两种类型......)。

然后我覆盖了使用返回的字符集Response.Charset = "utf-8";,尽管响应标头正确显示了 utf-8,但我仍然得到问号来代替正确的字符。请看下面的图片:

本地页面

本地页面,所有字符都正确显示

本地页眉

本地页眉

外部页面(注意两种问号)

外部页面,注意两种错误问号

外部页眉

外部页眉

我已经关注了http://htmlpurifier.org/docs/enduser-utf8.html但除了需要 UTF-8 之外,我找不到任何解决方案。

4

1 回答 1

0

解决了。仍然不完全确定一切是如何工作的,但我会解释我做了什么。

尽管标题说内容类型是 UTF-8,但这并没有解决问题。正如 Oded 所暗示的那样,我在 IIS > .Net Globalization 中发现了两个设置为 ISO-8859-1 的设置(请求和响应)。

将这些更改为 UTF-8 解决了这个问题。

至于为什么,我不确定,因为标题似乎是一样的,所以如果有人能解释发生了什么,那就太好了。

于 2012-05-03T09:36:57.370 回答