我正在改变我的应用程序以使用utf-8页面.
所以每个ASP页面都有这个代码
Response.CodePage = 65001 Response.CharSet = "utf-8"
和HTML
<meta charset="UTF-8" /> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
我在Visual Studio 2013中保存了所有文件,编码为UTF-8(无签名)65001.
当我在HTML中编写特殊字符时,这样工作正常:
<p>Ateno</p>
但是当我用VBScript(经典ASP)编写时,它不起作用,特殊字符很乱.我可以通过使用编码UTF-8(带签名)65001保存文档(.asp)来修复它们.
所以,我的问题是:
>我是否必须在每个页面上使用此编码(带签名)?
>我可以遇到什么样的问题?
解决方法
您需要为每个.asp文件设置@Codepage指令.我们正在使用一个通用的#include文件,该文件首先包含在每个页面中,并且预先包含以下行:
<%@Codepage = 65001 %> <% Option explicit %> <% Response.Codepage = 65001 %>
查看有关Codepage指令here(备注部分)的更多信息.链接的页面是关于Session.Codepage的,如果你想使用内置的Session,它也可能对你有意义.
使用BOM保存所有文件不是IIS的要求,我们保存所有文件而无需BOM正常工作.
根据我的经验,在使用ASP一年多之后的一个注意事项:我们有时会遇到源文件的BOM偷偷摸摸到生成的输出中的问题,这会导致AJAX / JSON响应出现问题.解决方法是在写输出之前使用Response.Clear.