我正在更改我的应用程序以使用utf-8页面。 所以每个ASP页面都有这个代码
Response.CodePage = 65001
Response.CharSet = "utf-8"
和HTML
<meta charset="UTF-8" />
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
我在Visual Studio 2013中保存了所有文件,编码为UTF-8(不带签名)65001。
当我在HTML中编写特殊字符时,这工作正常:
<p>Atenção</p>
但是当我用VBScript(经典ASP)编写时,它不起作用,特殊字符很乱。我可以通过使用编码UTF-8(带签名)65001保存文档(.asp)来修复它们。
所以,我的问题是:
答案 0 :(得分:3)
您需要为每个@Codepage
文件设置.asp
指令。我们使用的是通用的#include
文件,该文件首先包含在每个页面中,并且预先包含以下行:
<%@Codepage = 65001 %>
<% Option explicit %>
<% Response.Codepage = 65001 %>
查看有关Codepage指令here的更多信息(备注部分)。链接页面约为Session.Codepage
,如果您想使用内置会话,这也可能对您有意义。
保存所有带有BOM的文件不是IIS的要求,我们保存了所有文件而没有BOM正常工作。
根据我的经验,在使用ASP一年多之后的一个注意事项:我们有时会将源文件的BOM偷偷摸摸到生成的输出中,导致AJAX / JSON响应出现问题。解决方法是在写输出之前使用Response.Clear
。
答案 1 :(得分:0)
我有奇怪的字符问题,尝试了建议的所有建议的编码设置,没有任何工作,虽然上面确实正确地将数据导入sql数据库,但它不会正确显示(仍然是编码/解码问题)。
我的决议是删除&#34; CharSet=utf8;
&#34;来自数据库连接字符串。
所以不是我的连接字符串:
sConnection = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;CharSet=utf8;Port:3306;DATABASE=dbname;UID=uid;PASSWORD=*****;OPTION=3"
我用过:
sConnection = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;Port:3306;DATABASE=dbname;UID=uid;PASSWORD=*****;OPTION=3"
事情现在正确显示!