通过AJAX请求发送®字符时遇到问题

时间:2011-12-05 14:54:56

标签: javascript asp.net ajax character-encoding yui

我有简单的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字符,那么为什么会出现这种情况。

2 个答案:

答案 0 :(得分:2)

忘记配置问题,您的问题可能与编辑器及其用于保存文件的文件编码有关。设置字符编码是不够的,有时甚至不重要,你必须将文件本身保存在支持字符集的编码中,例如:utf-8没有BOM,得到一个编辑器,你可以看到这个信息。当然,在您的Web服务器,数据库服务器(假设您正在使用一个)和客户端之间可能会发生很多事情。检查whe web服务器中的默认字符,数据库以及编辑器用于保存文件的文件编码。

答案 1 :(得分:1)

从您设置的标签中推断,后端是在asp.net中编程的?检查您在那里使用的编码(请参阅例如here)。您的问题听起来很像您提供给客户端的问题(请参阅服务器设置)。

相关问题