【发布时间】: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