代码页65001和utf-8是一样的吗?

<%@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" /> 

上面的代码是正确的吗?

是。

Windows中的UTF-8是CP65001(这是在传统代码页中指定UTF-8的一种方式)。 据我所知ASP可以处理UTF-8时指定的方式。

你的代码是正确的,但我更喜欢在代码中设置CharSet而不是使用meta标签:

 <% Response.CharSet = "UTF-8" %> 

代码页65001确实引用了UTF-8字符集。 您需要确保您的asp页面(和任何包含的)保存为UTF-8,如果它们包含标准ASCII字符集以外的任何字符。

通过在<%@块中指定CODEPAGE属性,您指示使用Response.Write写入的任何内容都应该编码到指定的代码页,在本例中为65001(utf-8)。 值得注意的是,这并不影响任何静态内容,这些内容是逐字节地发送给响应的。 因此,文件需要使用指定的代码页实际保存的原因。

响应的CharSet属性设置Content-Type标题的CharSet值。 这对我的编码内容没有任何影响,只是告诉客户端正在接收什么编码。 同样重要的是,他的价值匹配发送的实际编码。

是的,65001是UTF-8的Windows代码页标识符,如Microsoft网站上所述 。 维基百科build议 IBM代码页128和SAP代码页4110也是UTF-8的指标。

 response.codepage = 65001 

当物理文件保存为utf-8时似乎给出了不好的结果

否则,它的工作原理是这样的。