<%@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" />
以上代码是否正确?
答案 0 :(得分:45)
是
UTF-8是Windows中的CP65001(这只是在遗留代码页内容中指定UTF-8的一种方式)。据我所知,ASP可以在指定的时候处理UTF-8。
答案 1 :(得分:9)
您的代码是正确的,虽然我更喜欢在代码中设置CharSet而不是使用元标记: -
<% Response.CharSet = "UTF-8" %>
代码页65001确实引用了UTF-8字符集。如果它们包含标准ASCII字符集之外的任何字符,您需要确保您的asp页面(和任何包含)保存为UTF-8。
通过在&lt;%@块中指定CODEPAGE属性,您指示使用Response.Write编写的任何内容都应编码到指定的代码页,在本例中为65001(utf-8)。值得注意的是,这不会影响任何静态内容,这些内容逐字节地发送到响应中。因此,需要使用指定的代码页实际保存文件的原因。
响应的CharSet属性设置Content-Type标头的CharSet值。这对我编码内容的方式没有影响,它只是告诉客户端正在接收什么编码。同样重要的是,他的值与发送的实际编码相匹配。
答案 2 :(得分:3)
是,65001是UTF-8的Windows代码页标识符,如文档on the Microsoft website所示。 Wikipedia suggests IBM代码页128和SAP代码页4110也是UTF-8的指示符。
答案 3 :(得分:1)
response.codepage = 65001
当物理文件保存为utf-8 时,似乎会产生错误结果
否则,它按预期工作。