Я обновляю spring-boot с 1.3.6 до 2.1.3, и если раньше ответы имели тип контента application/json;charset=UTF-8
, теперь я получаю кодировку iso-8859-1.
Я бы хотел получить utf 8.
Мой контроллер выглядит так:
@Controller
public class MyController {
@RequestMapping(value={"/myService/{serviceId}"}, method=RequestMethod.POST, consumes="application/json")
public ResponseEntity<Void> handlePostServiceId(final InputStream requestInputStream,
@PathVariable String serviceId,
final HttpServletRequest servletRequest,) {
<$businessLogic>
return new ResponseEntity<>(new HttpHeaders(), HttpStatus.ACCEPTED);
}
Я могу заставить его возвращать utf-8, если я включу produces= MediaType.APPLICATION_JSON_UTF8_VALUE
в свой @RequestMapping
, но я бы хотел установить его только один раз, а не для каждого отдельного API.
Я также попытался добавить
@Override
public void configureContentNegotiation(
ContentNegotiationConfigurer configurer) {
configurer.defaultContentType(MediaType.APPLICATION_JSON_UTF8_VALUE);
}
на мой WebMvcConfigurer, как предложено здесь: https://stackoverflow.com/a/25275291/2855921, но это нарушило мой API доступности, который использует простой / текстовый тип контента.
Я также гарантировал, что мой запрос был в формате UTF-8, поэтому он не просто отражает формат, который я дал.
Есть идеи о том, как установить кодировку UTF-8 для всего проекта?