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

7
我该如何在IIS下的网站中设置Classic ASP的*.asp文件,使得响应头的Content-Type为text/html;charset=UTF-8?目前,这些文件被视为Content-Type=text/html。
另一种方法是在每个页面上添加<% Response.Charset = "UTF-8" %>,但我想知道是否有一种全局的方法可以实现。
谢谢! -K
2个回答

6

编辑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"(或类似内容)即可。


那么,我需要修改网站中的每个页面吗? - Scott 混合理论

3

目前没有一种全局指定应用程序CharSet的方法。

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

然而,我更喜欢避免依赖服务器正确配置这种情况。每个页面都设置其代码页(使用@CODEPAGE指令或Response.Codepage),并设置其CharSet

我的两个理由是:一是最终的CharSet / Codepage是在创建和保存文件时做出的选择。另一个是,在部署 / 复制站点时,越少需要记住配置的内容越好。


对于那些可能正在寻找在 ASP.NET 应用程序中全局设置 CharSet 的人来说,这是可能的。请参见 Web.config 中的 <globalization> 元素。此外,在 ASP.NET 中,CodePage 65001 是默认值。(CodePage 管理 ASP.NET 源代码在服务器上的处理方式。CharSet 管理返回给客户端的字符编码(例如 UTF-8)。) - DavidRR

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接