<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="conn.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
上面的代码对吗?
是的,没错。
UTF-8在Windows中是CP65001(这只是传统codepage东西中指定UTF-8的一种方式)。据我所知,当这样指定时,ASP可以处理UTF-8。
你的代码是正确的,尽管我更喜欢在代码中设置CharSet而不是使用元标签:-。
<% Response.CharSet = "UTF-8" %>
代码页65001确实提到了UTF-8字符集。你需要确保你的asp页面(以及任何包含的内容)如果包含任何标准ASCII字符集以外的字符,都被保存为UTF-8。
通过在 <%@ 块中指定 CODEPAGE 属性,你就表明任何使用 Response.Write 写入的内容都应该被编码为指定的 Codepage,在本例中是 65001 (utf-8)。 值得注意的是,这不会影响任何静态内容,因为静态内容是逐字节发送到响应的。 因此,为什么需要使用指定的代码页实际保存文件。
响应的CharSet属性会设置Content-Type头的CharSet值。 这对我的内容如何被编码没有影响,它只是告诉客户端正在接收什么编码。 同样重要的是,他的值要与实际发送的编码相匹配。
response.codepage = 65001
当物理文件保存为utf-8时,似乎会产生不好的结果。
否则,它的工作就会像它应该的那样。