【问题标题】:IIS 6 - Classic ASP - Set *.asp response header's content-type to "text/html;charset=UTF-8"IIS 6 - 经典 ASP - 将 *.asp 响应标头的内容类型设置为“text/html;charset=UTF-8”
【发布时间】:2012-03-19 03:18:27
【问题描述】:
如何在 IIS 下的网站中设置 *.asp 文件(经典 ASP)以将响应标头的 Content-Type 设置为 text/html;charset=UTF-8?目前,这些文件以Content-Type=text/html 的形式提供。
另一种方法是将<% Response.Charset = "UTF-8" %> 添加到每个页面,但我想知道是否有办法在全局范围内这样做。
谢谢!
-K
【问题讨论】:
标签:
iis
asp-classic
iis-6
content-type
response-headers
【解决方案1】:
编辑 1:我已经使用 IE9 的开发人员工具(网络选项卡)对此进行了测试,
<%
response.ContentType = "text/html;charset=UTF-8"
%>
结果为 Content-Type 的 HTML 标头:
text/html;charset=UTF-8
然而,在 IIS7 上将其设置为 MIME 级别不会 - 当我弄清楚原因时,我会更新我的答案。
编辑 2:
我无法在我的测试平台上使用全局 MIME 方法 - 抱歉!网上有这个提示:http://forums.iis.net/p/1166956/1941076.aspx#1941076
我猜你只需要在 <!-- #include file="..\includes\common.asp" --> 类型包含(或类似)中弹出 response.ContentType = "text/html;charset=UTF-8"。
【解决方案2】:
无法为应用程序全局指定CharSet。
实际上,它不仅仅是告诉客户端它正在获取 UTF-8。您还需要确保将响应对象配置为 65001 代码页。这至少可以在应用程序级别(或直接在 IIS7 管理器的 ASP 功能中)使用 AspCodePage 元数据库值全局设置。
但是我对这类事情的偏好是避免依赖于正确配置的服务器。每个页面设置其代码页(使用@CODEPAGE 指令或Response.Codepage)及其CharSet。
我采用这种方法有两个原因。一是最终 CharSet/Codepage 是在创建和保存文件时做出的选择。另一个是在解聚/复制站点时,您需要记住的配置越少越好。