1

我是字符集和编码的新手。我不知道我做错了什么,但是当我希望它输出你好时,页面只会吐出奇怪的代码。这是我的代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%Response.ContentType = "text/html"
Response.AddHeader "Content-Type", "text/html;charset=UTF-8"
Response.CodePage = 65001
Response.CharSet = "UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
</head>
<body>
<%response.write ("你好")%>
</body>
</html>

我只能在屏幕上看到:ä½ å¥½ 该文件也以 UTF-8 编码保存。

提前致谢!

4

4 回答 4

2

如果它对某人有帮助。ASP 声明总是在任何 HTML 之前。包括定义会话,这样永远不会失败编码 utf-8

<%@CodePage = 65001%>
<%
Session.CodePage = 65001
Response.charset ="utf-8"
Session.LCID     = 1033 'en-US
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
</head>
<body>
<%response.write ("你好")%>
</body>
</html>
于 2013-03-13T16:55:13.657 回答
1

您的 asp 文件很可能只是 UTF-8 编码(没有 bom)。
如果是,需要用 BOM 保存文件。
在 Notepad++ 中,Encoding > Convert to UTF-8
在 Notepad 中,在保存对话框中将编码指定为 UTF-8。

事实上,不推荐使用 UTF-8 文件的 BOM
关键是在 ASP 中,响应流隐式需要 BOM。
作为一个实验,尝试运行以下页面(编码为没有 bom 的 utf-8),你会看到 Response 对象刷新奇怪的字符而不是字母。然而,直接输入将是平滑的,因为它应该是。

<%
Response.Codepage = 65001
Response.Charset = "utf-8"
Response.Write "I'm weird: 好"
%><br />I'm not weird: 好
于 2013-01-21T12:34:37.240 回答
1

将您的 DOCTYPE 声明移到设置代码页的代码块之后。代码页设置需要在任何输出之前进行。

于 2013-01-19T23:20:50.463 回答
0

您不必在服务器端将 .asp 保存为 UTF-8!只需正常保存(UCS-2)。

于 2013-01-20T22:27:35.137 回答