Возникли проблемы при отправке символа ® через запрос AJAX - PullRequest
6 голосов
/ 05 декабря 2011

У меня есть простое веб-приложение asp.net, которое использует 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 (база данных).

Теперь моя проблема заключается в том, что когда в текстовом поле вводится символ «Зарегистрированный» ® (0174) и отправляется на сервер, я получаю # 65533, а это не то, что пользователь ввел в текстовое поле. Также ® этот символ не является символом Unicode, тогда почему это поведение.

Ответы [ 2 ]

2 голосов
/ 15 декабря 2011

Забудьте о проблемах конфигурации, ваша проблема, вероятно, связана с вашим редактором и кодировкой файлов, используемой для сохранения ваших файлов. Недостаточно установить кодировку символов, иногда это даже не имеет значения, вы должны сохранить сами файлы в кодировке, которая поддерживает набор символов, например: utf-8 без спецификации, получите редактор, где вы можете увидеть это Информация. Конечно, между вашим веб-сервером, сервером базы данных (если вы его используете) и клиентом может происходить много событий. Извлеките символ по умолчанию на веб-сервере, в базе данных и в кодировке файла, которую использует ваш редактор для сохранения файлов.

1 голос
/ 05 декабря 2011

Исходя из установленных вами тэгов, бэкэнд запрограммирован в asp.net?Проверьте, с какой кодировкой вы там работаете (см., Например, здесь ).Ваша проблема звучит так, как будто бы она отличается от того, что вы доставляете клиенту (см. Настройки сервера).

...