powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring mvc и кодировка ajax запроса
12 сообщений из 12, страница 1 из 1
Spring mvc и кодировка ajax запроса
    #38263088
st4j
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть ajax post запрос
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
$.ajax({
                             type:'post',//тип запроса: get,post либо head
                             url:'/getNews',//url адрес файла обработчика
                             dataType: "json",
                             data:{},//параметры запроса
                             response:'text',//тип возвращаемого ответа text либо xml
                             success: function(data){
                                 alert(data[0].name);
                             }
                         });




И ответ с контроллера
Код: java
1.
2.
3.
4.
    @RequestMapping(value = "/getNews", method = RequestMethod.POST)
    public @ResponseBody String doLogout(HttpServletRequest request) {
        return new Gson().toJson(NewsDao.getInstance().getAllNews());
    }



При выводе ответа в alert() вместо букв показывает знаки вопроса.
База данных, с которых берётся инфа для ответа, в UTF8.
Страницы jsp так же в utf8.

Подскажите, люди добрые, куда ещё заглянуть для нормального отображения?
...
Рейтинг: 0 / 0
Spring mvc и кодировка ajax запроса
    #38263090
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сначала подабажить контроллер, и посмотреть как выглядят данные в нем. Тогда станет ясно проблема в работе с базой или в web.
...
Рейтинг: 0 / 0
Spring mvc и кодировка ajax запроса
    #38263091
st4j
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczСначала подабажить контроллер, и посмотреть как выглядят данные в нем. Тогда станет ясно проблема в работе с базой или в web.

Продебажить то, что отправляется с контроллера в ответ?

Если да, то вот дебаг спринга, смущает немного он меня.

[09:41:09] DEBUG Written [[{"id":0,"name":"Первая новость","newsText":"Это первая тестовая новость","date":"май 18, 2013"}]] as "application/json" using [org.springframework.http.converter.StringHttpMessageConverter@f62139b]
...
Рейтинг: 0 / 0
Spring mvc и кодировка ajax запроса
    #38263097
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это лог. Вы пошаговой отладкой умеете пользоватся? Кнопка Debug в IDE.
Это UTF8 прочитаный как CP1251. Скорее всего оно неправильно вычиталось из базы. Или даже не правильно туда записано.
...
Рейтинг: 0 / 0
Spring mvc и кодировка ajax запроса
    #38263110
st4j
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczЭто лог. Вы пошаговой отладкой умеете пользоватся? Кнопка Debug в IDE.
Это UTF8 прочитаный как CP1251. Скорее всего оно неправильно вычиталось из базы. Или даже не правильно туда записано.

Я не совсем понял, что именно дебажить в контроллере.
Проверил ещё более точно базу, она в utf8.
...
Рейтинг: 0 / 0
Spring mvc и кодировка ajax запроса
    #38263119
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st4jЯ не совсем понял, что именно дебажить в контроллере.

В отладке посмотреть значения, которые отдаёт getAllNews(). Есть вероятность что бочит и логирование тоже. Поэтому на лог нельзя положиться. Хотя это маловероятно.

st4jПроверил ещё более точно базу, она в utf8.
Да, но драйвер думает что CP1251. Что за база? В MySQL, например, отдельные кодировки не только на базу, но и на каждую таблицу.
...
Рейтинг: 0 / 0
Spring mvc и кодировка ajax запроса
    #38263123
st4j
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczst4jЯ не совсем понял, что именно дебажить в контроллере.

В отладке посмотреть значения, которые отдаёт getAllNews(). Есть вероятность что бочит и логирование тоже. Поэтому на лог нельзя положиться. Хотя это маловероятно.

st4jПроверил ещё более точно базу, она в utf8.
Да, но драйвер думает что CP1251. Что за база? В MySQL, например, отдельные кодировки не только на базу, но и на каждую таблицу.

Немного работал с дебаггером.

Вот что возвращает контроллер
...
Рейтинг: 0 / 0
Spring mvc и кодировка ajax запроса
    #38263128
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st4j,

Замечательно. Это показывает что проблема в web и в просмотрщике лога. С базой всё ОК.
Сама HTML страница в UTF-8 загружена? Можно попробовать задать явно charset
http://stackoverflow.com/questions/553463/jquery-ajax-character-encoding-problem
Но лучше разобраться и зделать чтобы всё было в UTF-8.

Сама страница кем отдаётся? JSP или просто HTML? tomcat?

Можно ещё попробовать
Код: sql
1.
@RequestMapping(... produces={"application/json; charset=UTF-8"})
...
Рейтинг: 0 / 0
Spring mvc и кодировка ajax запроса
    #38263130
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На всякиё случай есть смысл посмотреть что вернет
new Gson().toJson(NewsDao.getInstance().getAllNews())
Кстати, зачем руками всё время делать JSON? Почитайте про REST в Spring MVC. Можно отдавать объекты и настроить View, чтобы Spring их в JSON кодировал. Не зачем руками это в каждом методе делать.
...
Рейтинг: 0 / 0
Spring mvc и кодировка ajax запроса
    #38263132
st4j
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz
Код: sql
1.
@RequestMapping(... produces={"application/json; charset=UTF-8"})



А вот за это спасибо большое, помогло :)
Ваш пост надо проиндексировать в гугле, много искал, толкового нет ничего.
...
Рейтинг: 0 / 0
Spring mvc и кодировка ajax запроса
    #38263135
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
st4jВаш пост надо проиндексировать в гугле, много искал, толкового нет ничего.
Все эти ответы есть на stackoverflow
...
Рейтинг: 0 / 0
Spring mvc и кодировка ajax запроса
    #38619519
stim644
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помогло это решение :

http://stackoverflow.com/questions/19524958/spring-mvc-response-to-ajax

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
@RequestMapping(value = "/addData.html", method = RequestMethod.POST)
public ResponseEntity<String> addNewGroup(@ModelAttribute(value = "group") GroupStudent group, ...

    if(group.getGroupStudentNumber() != null) {
         HttpHeaders headers = new HttpHeaders();
         headers.add("Content-Type", "text/html; charset=utf-8");
         ResponseEntity<String> entity = new ResponseEntity<String>("Группа " + group.getGroupStudentNumber() + " добавлена", headers, HttpStatus.OK);
         return entity;
    } else
        return null;
}
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring mvc и кодировка ajax запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]