JQuery TextArea JSON и незаконный характер - особенно £ - PullRequest
0 голосов
/ 16 августа 2010

У меня есть textarea, и я использую $ ('# mytextarea'). Val (), и когда у меня есть текст '£', я получаю печально известный черный бриллиант с вопросительным знаком на нем. Когда я упаковываю это как JSON-пакет, он затем отправляется на сервер и интерпретирует это следующим образом: «» на стороне сервера.

Я отправляю его на сервер с таким кодом:

jQuery.ajax({
        url: "aurl",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async : true,
        cache : false,
        type: "POST",
        processData : false,
        data: JSON.stringify(parameterMap)
});

Я не очень понимаю, почему именно символ £ вызывает у меня проблемы, это кодировка символов? это сторона сервера или клиента?

Есть идеи?

1 Ответ

0 голосов
/ 23 сентября 2010

Это похоже на проблему кодирования на стороне сервера.Например, вы можете добавить фильтр перед вашим сервлетом, у которого есть doFilter, подобный следующему:

public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain chain) throws IOException, ServletException {
    if (request.getCharacterEncoding() == null)
        request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");
    chain.doFilter(request, response);
}

Это также установит правильную кодировку для ответов, отправляемых сервлетом.

Еще один совет вамможет проверить в вашем проекте: если вы определяете некоторые строковые константы в своем коде, проверьте, что файлы находятся в одной и той же кодировке во время редактирования и когда сервер их доставляет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...