我有一个简单的 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
});
});
});
我在应用程序中所做的是接受用户输入的字符,将其保存到数据库并将其写入 Ajax 响应。系统不支持Unicode(数据库)。
现在我的问题是,当在文本框中输入“已注册”® 字符 (0174) 并将其发送到服务器时,我得到的是 #65533,这不是用户在文本框中输入的内容。另外 ® 这个字符不是 Unicode 字符那么为什么会出现这种行为。
最佳答案
忘掉配置问题,您的问题可能与您的编辑器及其用于保存文件的文件编码有关。设置字符编码是不够的,有时甚至无关紧要,你必须将文件本身保存在支持字符集的编码中,例如:没有 BOM 的 utf-8,得到一个你可以看到这个的编辑器信息。当然,在您的 Web 服务器、数据库服务器(假设您使用的是一个)和客户端之间可能会发生很多事情。检查 whe web 服务器、数据库和编辑器用于保存文件的文件编码中的默认字符。
关于javascript - 通过 AJAX 请求发送 ® 字符时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8387180/