使用HTML和经典ASP读取、写入和显示unicode字符



我有一个ASP页面的标题:

<%@CodePage=65001 %>
<%  response.codepage=65001
response.charset="utf-8" %>
<head>
<meta charset="utf-8">
</head>

我通过另一个ASP文件从MS SQL数据库表(包含带口音的法语字符等)检索数据,并使用Javascript动态地将该文本插入到我的页面中,一切看起来都很完美。

注意,如果我去掉所有的头代码,它仍然正确显示。但是页面上的其他硬编码字符(如""-等)不显示。所以我把头代码留在。

我有另一个"添加到quot;ASP文件,该文件检索相同的数据并将其插入购物车表。我暂时在脚本中显示数据,以便看到我插入的内容,但文本是扭曲的。例如:

réexpédié

代替:

réexpédié

当我检查购物车表时,它在那里也是扭曲的。

如果我把这个插入到我的"ASP文件:

<meta charset="utf-8">

…屏幕上的显示看起来不错,但是存储在购物车表中的数据仍然是扭曲的。我不知道为什么它在屏幕上看起来很好,因为在我的主ASP文件(我插入相同的文本)它并不重要,如果我包括元标签或不。

我很困惑,我的代码的哪些部分导致文本正确显示,哪些导致它失败。

即使查看我的ASP文件,检索Javascript插入的数据,如果我在浏览器中加载该URL,文本是不正确的。但是当我将它插入主ASP页面时,它是正确的。如果我将meta标记添加到第一个ASP文件中,现在就正确了。但是在主页上,我是否包含meta标签并不重要。

如何解决这个问题,以便在所有这些实例中获得一致的文本字符?

作为一个专门从事经典ASP多年的法国程序员(是的,仍然),除了你的头指令,我认为Session.CodePage = 65001也可以帮助你。

对于我来说,在许多网站/内部网/外联网上正确显示像法语这样的重音国际字符,无论是在HTML页面上还是在web应用程序的Javascript部分,都是在每个顶部的这个精确序列。无论是用HTML和/或JS向浏览器显示数据,还是只是执行一些后端任务,如插入数据库。在EVERY上使用它经典ASP页面:

<%@codepage=65001%>
<%
Session.CodePage = 65001
Response.CodePage = 65001
Response.CharSet = "utf-8"
%>

然后

<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

还请注意,如果您从一个页面更改Session.CodePage到另一个页面,这将混淆在下一个加载页面上显示的字符。确保您与此Session.CodePage属性一致。如果您把事情搞砸了,请回收IIS应用程序池,然后重新开始您的测试。

相关内容

  • 没有找到相关文章

最新更新