Encoding 经典asp字符编码

Encoding 经典asp字符编码,encoding,asp-classic,utf-8,character-encoding,vbscript,Encoding,Asp Classic,Utf 8,Character Encoding,Vbscript,我在一个经典的asp网站上遇到了西班牙语字符的问题。用户可以在aspx页面的表单中提交其姓名/地址。然后,aspx页面向一个经典的asp页面发送ajax帖子,它所做的一切都存储在sql2008db中。我可以在数据库中看到字符存储不正确。例如,名字看起来像Mª,应该是Mª 然后,当我读取数据并将其显示在文本框中时,它仍在显示Mª 我尝试过的事情: 将文件编码为UTF-8(使用记事本++) 还有其他想法吗?我是否需要首先返回数据库并修复字符,或者在读取字符并显示它们时可以这样做?您看到的是U

我在一个经典的asp网站上遇到了西班牙语字符的问题。用户可以在aspx页面的表单中提交其姓名/地址。然后,aspx页面向一个经典的asp页面发送ajax帖子,它所做的一切都存储在sql2008db中。我可以在数据库中看到字符存储不正确。例如,名字看起来像
,应该是

然后,当我读取数据并将其显示在文本框中时,它仍在显示

我尝试过的事情:

  • 
    
  • 将文件编码为UTF-8(使用记事本++)

还有其他想法吗?我是否需要首先返回数据库并修复字符,或者在读取字符并显示它们时可以这样做?

您看到的是UTF-8。它可能与它应该的完全一样,问题是您用于查找的工具没有正确处理UTF-8,或者是因为它不能正确处理UTF-8,或者是因为它配置不正确。

我在ASP上开始使用UTF-8时遇到了相同的问题,发现session.CodePage起了作用。在经典的ASP页面中,始终执行第一个ASP声明,以确保所有页面对数据、表单、ASP代码、接收或发送的数据使用UTF-8

<%@Language=VBScript CodePage = 65001%>
<%
Session.CodePage = 65001
Response.charset ="utf-8"
Session.LCID     = 1033 'en-US
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">


您发布的代码是否同时存在于用于接收表单发布的文件以及包含原始表单的文件中?您是否使用GET或POST作为表单方法?你用的是什么数据库引擎?你读过这个答案吗:?表单在一个aspx页面上,它向一个经典的asp页面发送一个ajax帖子,将数据保存在数据库中。我已检查,此asp页面中没有编码信息。我可以使用您提供的帖子中的代码snipit,它似乎正在正确转换字符以显示。k因此您可以修复数据库中的损坏,但您还需要找到损坏的来源并修复该损坏。首先,请阅读我上面提出的每个问题,并逐一仔细回答。该“工具”是Firefox、IE或chrome中的一个asp页面。那么浏览器是否会将该页面解释为UTF-8?我如何检查,以及我如何为其他用户强制执行此操作?我已经设置了代码页和响应字符集。至少在Firefox中,它会在页面属性或类似内容中告诉您。检查内容类型:HTTP响应的标头;如果您的HTML中没有合适的http equiv meta标记,请添加一个。好的,本例中的工具是一个经典的ASP页面,,,因此如果数据在UTF-8中,则应该有编码声明:Session.CodePage=65001 Response.charset=“UTF-8”不同的是,如果数据在另一种编码中编码,如Win-1252,然后声明必须与该编码相对应。谢谢,这正是我最终添加来解决它的原因,同时需要清理错误插入的数据。在
会话启动()中只添加一次会话内容不是更有意义吗?