经典ASP和UTF-8
我正在将我的应用程序更改为使用utf-8页面。 所以每个ASP页面都有这个代码经典ASP和UTF-8,utf-8,character-encoding,asp-classic,Utf 8,Character Encoding,Asp Classic,我正在将我的应用程序更改为使用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" /> 我使用编码UTF-8(无签名)65001在Visual Studio 2013中
Response.CodePage = 65001
Response.CharSet = "utf-8"
和HTML
<meta charset="UTF-8" />
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
我使用编码UTF-8(无签名)65001在Visual Studio 2013中保存了所有文档
当我在HTML中编写特殊字符时,这样做很好:
<p>Atenção</p>
Atenção
但是,当我用VBScript(经典ASP)编写时,它不起作用,而且特殊字符很混乱。我可以通过使用编码UTF-8(带有签名)65001保存文档(.asp)来修复这些问题
因此,我的问题是:
- 我是否必须在每页上使用此编码(带签名)
- 我会有什么样的问题
.asp
文件设置@Codepage
指令。我们正在使用一个通用的#include
文件,该文件首先包含在每页上,前面有以下行:
<%@Codepage = 65001 %>
<% Option explicit %>
<% Response.Codepage = 65001 %>
请参阅有关代码页指令的更多信息(备注部分)。链接页面是关于Session.Codepage
的,如果您想使用内置会话,它可能会让您感兴趣
使用BOM保存所有文件不是IIS的要求,我们保存的所有文件都没有BOM正常工作
在与ASP合作多年后,我的经验中有一点值得注意:我们有时会遇到源文件的BOM混入生成的输出中的问题,这会导致AJAX/JSON响应出现问题。补救方法是使用
响应。在写入输出之前清除。我遇到了奇怪字符的问题,尝试了所有建议的编码设置,但没有任何效果,尽管上述方法确实将数据正确地输入了sql数据库,但它不会正确显示(仍然存在编码/解码问题)
我的解决方案是从数据库连接字符串中删除“CharSet=utf8;
”
因此,不是我的连接字符串:
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"
事情现在显示正确了 我建议阅读此文-VS似乎将字节顺序标记称为签名。因此,我的ASP页面必须有BOM表。包含BOM表不会有任何伤害。也就是说,我经常将页面保存为UTF8,没有BOM表,并且没有任何困难。(尽管我倾向于不使用VS作为经典ASP,但我使用了一个名为EditPlus的编辑器,它类似于Hanselman提到的Notepad2),只要您指定
,IIS ASP预处理器就会理解,无论是否有BOM,它都需要将ASP页面视为UTF-8。