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

上面的代码对吗?

4

4 回答 4

61

是的。

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

于 2009-10-27T08:40:04.080 回答
11

您的代码是正确的,尽管我更喜欢在代码中设置 CharSet 而不是使用元标记:-

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

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

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

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

于 2009-10-27T09:01:58.023 回答
7

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

于 2009-10-27T08:59:08.580 回答
1
response.codepage = 65001

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

否则,它会按预期工作。

于 2011-04-03T18:48:05.473 回答