【问题标题】:IIS suddenly serving garbled UTF-8IIS 突然服务乱码 UTF-8
【发布时间】:2020-11-18 04:38:07
【问题描述】:

我在做一个网站。所有文件均采用 UTF-8 编码,没有 BOM。一切正常。突然,我的 IIS 或 ASP.NET 开始提供所有变音符号乱码的文件。

网络服务器上 .aspx 文件的文件内容

öäü

通过 IIS 返回浏览器

öäü

我可以通过将文件重新保存为 UTF-8 with BOM 来“解决”这个问题,但我不想这样做。 HTTP 响应标头声称内容是 UTF-8

Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319

但事实并非如此。如果我创建一个相同的文件并将其扩展名从 .aspx 更改为 .html,它会得到正确的服务。

这不仅限于在 IIS 上运行的单个网站,而是在 IIS 服务器上运行的所有网站上发生。这不是 web.config 中的某些设置,即使我完全删除 web.config 也会发生。

是什么原因造成的?为什么会这样?

编辑

好吧,结果我不得不将<globalization fileEncoding="utf-8" /> 添加到 web.config 中,即

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.web>
        <globalization fileEncoding="utf-8" />
    </system.web>
</configuration>

修复它。这很奇怪,因为我很确定我之前的 web.config 中没有那个设置。

【问题讨论】:

    标签: asp.net iis encoding utf-8 configuration


    【解决方案1】:

    是的,正如你所说。 DotNet Globalization 功能页面负责配置DotNet Framework globalization 设置,例如语言、文化、编码选项。
    当我们想要应用到服务器上的所有 ASP.NET 应用程序时,我们可以在 Web 服务器级别更改 ASP.NET 应用程序的全球化设置。

    https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/hh831368(v=ws.11)
    您可以发布您的解决方案作为答案,以帮助遇到相同问题的人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-23
      • 2018-04-21
      • 1970-01-01
      相关资源
      最近更新 更多