刷新网页上的字符

时间:2018-12-05 04:30:00

标签: asp.net iis character-encoding access

Web服务器正在发送回两个不同的响应。

一个响应是正确的,并且可能获取正确的字符代码。

另一个响应没有正确的字符代码。

不正确源代码如下所示: 名称愀测试

正确的源代码如下所示: 名称测试。

如果我刷新10次,大多数情况下会出现撇号。出现“中文”字符的一到两次。我知道字符代码是相同的,并且字符集可能变得愚蠢。能够刷新并获得或使我感到难过。

我知道有不同的字符集。

btw :适用于那些希望获得出色字符集历史参考的人。 https://www.smashingmagazine.com/2012/06/all-about-unicode-utf8-character-sets/

ASP生成的页面。
服务器是IIS。
请求设置为utf-8。 响应编码为utf-8。 文件编码为Windows-1252。 文化:不变 UI文化:不变 ASP.NET支持版本为4.5.2

后端是MS Access数据库。 (客户的选择不属于我)。

我可以可靠地重现该问题。

我该如何解决?

这是服务器设置吗?

其他线程表示禁用压缩并检查标题。什么是正确的建议。

任何帮助将不胜感激!任何有关未来调试的技巧都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

ASP文件正在设置语言:

<%@ Language=VBScript LCID=1033 CODEPAGE = 1252%>

此字符编码是ISO 8859-1的超集。它是拉丁字母的单字节字符编码,默认情况下在Microsoft的旧版组件中使用。

有一个Apache反向代理将流量传递给Windows服务器

<Location "/SomeFolder/">
      ProxyPass "http://someurl.com/SomeFolder/"
      ProxyPassReverse "http://someurl.com/SomeFolder/"
      RequestHeader    unset  Accept-Encoding
      AddDefaultCharset ISO-8859-1
</Location>

启用显式反向代理选项可以使字符编码正确通过。