IIS 6 - 经典ASP - 将*.asp响应头的内容类型设置为"text/html; charset = UTF-8"

Das*_*shK 7 iis iis-6 content-type asp-classic response-headers

如何*.asp在IIS下的网站中设置文件(经典ASP)以将响应标头的Content-Type设置为text/html;charset=UTF-8?现在,文件作为Content-Type=text/html.

另一种方法是添加<% Response.Charset = "UTF-8" %>到每个页面,但我想知道是否有一种方法可以在全球范围内进行.

谢谢!-K

Hea*_*ore 5

编辑1:我用IE9的开发者工具(网络标签)对此进行了测试,

<%
response.ContentType = "text/html;charset=UTF-8"
%>
Run Code Online (Sandbox Code Playgroud)

Content-Type的HTML标题中的结果:

text/html;charset=UTF-8
Run Code Online (Sandbox Code Playgroud)

然而,在IIS7上将其设置为MIME级别不会 - 当我弄清楚原因时,我会更新我的答案.

编辑2: 我无法使用全局MIME方法在我的测试台上工作 - 抱歉!网上有一些提示:http://forums.iis.net/p/1166956/1941076.aspx#1941076

我猜你只需要弹出response.ContentType = "text/html;charset=UTF-8"的一个<!-- #include file="..\includes\common.asp" --> 类型包括(或类似).


Ant*_*nes 3

无法为CharSet应用程序全局指定 。

实际上,它不仅仅是告诉客户端它正在获取 UTF-8。您还需要确保响应对象配置为 65001 代码页。这至少可以使用AspCodePage应用程序级别的元数据库值进行全局设置(或直接在 IIS7 管理器的 ASP 功能中)。

然而,我对这类事情的偏好是避免依赖于正确配置的服务器。每个页面设置其代码页(使用@CODEPAGE指令或使用Response.Codepage)及其CharSet.

我采用这种方法有两个原因。一是最终字符集/代码页是在创建和保存文件时选择的。另一个是,当解聚/复制站点时,您需要记住的配置越少越好。