@ResponseBody и язык приводят к неправильной кодировке - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть несколько конечных точек REST, которые возвращают объекты JSON.Для большинства локалей ответы верны (все символы правильно отображаются в ответе, а Content-Type - application / json).

Если я предоставлю заголовку Accept-Language значение "en_NL", Content-Заголовок типа изменится на «application / json; charset = ISO-8859-1. Тело ответа также содержит неправильные закодированные символы. (Например, € превращается в â €).

Я не уверен, гдеИзменения заголовка типа содержимого, и я не могу найти никаких следов ни в одном фильтре / конфигурации или jaxb.

Для (не) сортировки я использую jaxb. Приложение собрано с использованием Spring 4.1.7 и размещено насервер Tomcat.

Пример контроллера:

    @RequestMapping(value = "/by-bundle", method = RequestMethod.GET)
    @ResponseBody
    public SbMessageMap getByBundleCodes(final @RequestParam("groups") String[] groups) {
        // return json object here
    }

Заранее спасибо!

1 Ответ

0 голосов
/ 18 декабря 2018

Вы пытались установить кодировку с параметром производит в @ RequestMapping ?

@RequestMapping(value = "/by-bundle", method = RequestMethod.GET, produces = "application/json; charset=UTF-8")
...