我有简单的asp.net Web应用程序,它使用YUI进行Ajax请求。应用程序从文本框中读取文本并将AJAX请求发送到服务器。以下是代码
<body>
<form id="form1" runat="server">
<div>
<input id="txt" name="txt" type="text" value="[Enter some value]" />
<input id="btn" type="button" value="button" />
</div>
<div id="out"></div>
</form>
</body>
以下是初始化Ajax请求的客户端脚本
YAHOO.util.Event.onDOMReady(function() {
YAHOO.util.Event.addListener("btn", "click", function(evt) {
var url = "Server.aspx?type=test&txt=" + document.getElementById("txt").value;
var btn = document.getElementById("out");
var cObj = YAHOO.util.Connect.asyncRequest('GET', url, {
success: function(o) {
btn.innerHTML += "<div>" + o.responseText + " = " + o.responseText.charCodeAt(0) + "</div>";
},
failure: function(o) {
confirm("Its failure");
},
cache: false
});
});
});
我在应用程序中做的是接受用户输入的字符,将其保存到db并将其写入Ajax响应。系统不支持Unicode(数据库)。
现在我的问题是,当在文本框中输入“Registered”®字符(0174)并发送到服务器时,我得到#65533,这不是用户在文本框中输入的内容。另外®此字符不是Unicode字符,那么为什么会出现这种情况。
答案 0 :(得分:2)
忘记配置问题,您的问题可能与编辑器及其用于保存文件的文件编码有关。设置字符编码是不够的,有时甚至不重要,你必须将文件本身保存在支持字符集的编码中,例如:utf-8没有BOM,得到一个编辑器,你可以看到这个信息。当然,在您的Web服务器,数据库服务器(假设您正在使用一个)和客户端之间可能会发生很多事情。检查whe web服务器中的默认字符,数据库以及编辑器用于保存文件的文件编码。
答案 1 :(得分:1)
从您设置的标签中推断,后端是在asp.net中编程的?检查您在那里使用的编码(请参阅例如here)。您的问题听起来很像您提供给客户端的问题(请参阅服务器设置)。